Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从包含图像标签和开关列表的listview获取开关id_Java_Android_Android Studio - Fatal编程技术网

Java 从包含图像标签和开关列表的listview获取开关id

Java 从包含图像标签和开关列表的listview获取开关id,java,android,android-studio,Java,Android,Android Studio,您好,我有一个列表视图,显示设备上已安装的应用程序列表,其中包含图标和标题以及SwitchCompact。我需要获取每个选定行的SwitchCompact id,以执行所需的代码 <ImageView android:id="@+id/app_icon" android:layout_width="50dp" android:layout_height="70dp" android:gravity="center" android:layout_

您好,我有一个列表视图,显示设备上已安装的应用程序列表,其中包含图标和标题以及SwitchCompact。我需要获取每个选定行的SwitchCompact id,以执行所需的代码

  <ImageView
    android:id="@+id/app_icon"
    android:layout_width="50dp"
    android:layout_height="70dp"
    android:gravity="center"
    android:layout_marginTop="2dp"
    android:layout_marginLeft="25dp"
    android:contentDescription="@null"
    android:scaleType="center"/>

<TextView
    android:id="@+id/list_app_name"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_alignTop="@+id/app_icon"
    android:layout_marginTop="8dp"
    android:layout_marginRight="10dp"
    android:layout_marginLeft="10dp"
    android:layout_weight="85.6"
    android:gravity="left"
    android:paddingRight="10dp"
    android:text="test1"
    android:textColor="@color/colorPrimary"
    android:textSize="20dp"
    android:textStyle="bold" />

    <android.support.v7.widget.SwitchCompat
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:layout_marginTop="10dp"
        android:padding="15dp"
        android:thumb="@drawable/swithc_thumb"
        app:track="@drawable/switch_track"
        android:id="@+id/Swtch"/>
我尝试了设置onCheckedChangeListener的常规方法,但它返回null。在这种情况下,switchcompact的默认id对我不起作用

这是我的适配器类

public class AppAdapter extends BaseAdapter {

    private LayoutInflater layoutInflater;
    private List<AppList> appInList;

    public AppAdapter(Context context, List<AppList> customizedListView) {
        layoutInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        appInList = customizedListView;
    }
    @Override
    public int getCount() {
        return appInList.size();
    }
    @Override
    public Object getItem(int position) {
        return position;
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder listViewHolder;
        if(convertView == null){
            listViewHolder = new ViewHolder();
            convertView = layoutInflater.inflate(R.layout.app_item_layout, parent, false);

            listViewHolder.appNameText = (TextView)convertView.findViewById(R.id.list_app_name);
            listViewHolder.appIcon = (ImageView)convertView.findViewById(R.id.app_icon);
            convertView.setTag(listViewHolder);
        }
        else{
            listViewHolder = (ViewHolder)convertView.getTag();
        }
        listViewHolder.appNameText.setText(appInList.get(position).getName());
        listViewHolder.appIcon.setImageDrawable(appInList.get(position).getIcon());

        return convertView;
    }
}
static class ViewHolder{
    TextView appNameText;
    ImageView appIcon;
}

public class AppList {

    private String name;
    Drawable icon;

    public AppList(String name, Drawable icon) {
        this.name = name;
        this.icon = icon;
    }

    public String getName() {
        return name;
    }

    public Drawable getIcon() {
        return icon;
    }
}
我刚刚将switchCompat添加到您的视窗夹中,以便您可以使用switchCompat


请将您的适配器张贴在此处,以便我们可以帮助您完成此操作
public class AppAdapter extends BaseAdapter {    
    private LayoutInflater layoutInflater;
    private List<AppList> appInList;

    public AppAdapter(Context context, List<AppList> customizedListView) {
        layoutInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        appInList = customizedListView;
    }
    @Override
    public int getCount() {
        return appInList.size();
    }
    @Override
    public Object getItem(int position) {
        return position;
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder listViewHolder;
        if(convertView == null){
            listViewHolder = new ViewHolder();
            convertView = layoutInflater.inflate(R.layout.app_item_layout, parent, false);

            listViewHolder.appNameText = (TextView)convertView.findViewById(R.id.list_app_name);
            listViewHolder.appIcon = (ImageView)convertView.findViewById(R.id.app_icon);
            listViewHolder.appSwitch = (SwitchCompat) convertView.findViewById(R.id.Swtch); //added switchCompat here.
            convertView.setTag(listViewHolder);
        }
        else{
            listViewHolder = (ViewHolder)convertView.getTag();
        }
        listViewHolder.appNameText.setText(appInList.get(position).getName());
        listViewHolder.appIcon.setImageDrawable(appInList.get(position).getIcon());

        /* you can now use your appSwitch here. 
        listViewHolder.appSwitch 
        */

        return convertView;
    }
}
static class ViewHolder {

    TextView appNameText;
    ImageView appIcon;
    SwitchCompat appSwitch; // added switch compat to your viewHolder.
}