Android 在多选列表视图中未选中列表项

Android 在多选列表视图中未选中列表项,android,listview,checkbox,android-listview,multiple-choice,Android,Listview,Checkbox,Android Listview,Multiple Choice,我有以下设置: 活动: public class UploadActivity extends AbstractListActivity { protected PackageAdapter mAdapter = new PackageAdapter(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我有以下设置:

活动:

public class UploadActivity extends AbstractListActivity {

    protected PackageAdapter mAdapter = new PackageAdapter();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        setListAdapter(mAdapter);
    }
}
public class PackageAdapter extends ArrayAdapter<PointPackage> {

    ...

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        TextView view;
        if (convertView == null) {
            view = (TextView) mInflater.inflate(R.layout.list_item_package, parent, false);
        } else {
            view = (TextView) convertView;
        }

        bind(getItem(position), view);

        return view;
    }

    private void bind(PointPackage item, TextView view) {
        view.setText(item.getName());
    }
}
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:drawableLeft="@drawable/collection"
    android:drawablePadding="@dimen/compactPadding"
    android:gravity="center_vertical"
    android:textAppearance="?android:attr/textAppearanceListItem" />
适配器:

public class UploadActivity extends AbstractListActivity {

    protected PackageAdapter mAdapter = new PackageAdapter();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        setListAdapter(mAdapter);
    }
}
public class PackageAdapter extends ArrayAdapter<PointPackage> {

    ...

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        TextView view;
        if (convertView == null) {
            view = (TextView) mInflater.inflate(R.layout.list_item_package, parent, false);
        } else {
            view = (TextView) convertView;
        }

        bind(getItem(position), view);

        return view;
    }

    private void bind(PointPackage item, TextView view) {
        view.setText(item.getName());
    }
}
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:drawableLeft="@drawable/collection"
    android:drawablePadding="@dimen/compactPadding"
    android:gravity="center_vertical"
    android:textAppearance="?android:attr/textAppearanceListItem" />
list\u item\u package.xml:

public class UploadActivity extends AbstractListActivity {

    protected PackageAdapter mAdapter = new PackageAdapter();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        setListAdapter(mAdapter);
    }
}
public class PackageAdapter extends ArrayAdapter<PointPackage> {

    ...

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        TextView view;
        if (convertView == null) {
            view = (TextView) mInflater.inflate(R.layout.list_item_package, parent, false);
        } else {
            view = (TextView) convertView;
        }

        bind(getItem(position), view);

        return view;
    }

    private void bind(PointPackage item, TextView view) {
        view.setText(item.getName());
    }
}
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:drawableLeft="@drawable/collection"
    android:drawablePadding="@dimen/compactPadding"
    android:gravity="center_vertical"
    android:textAppearance="?android:attr/textAppearanceListItem" />

我的问题是单击时列表项未被选中。。。该行似乎可以单击,单击时会高亮显示,但复选标记不会显示。 我做错了什么

编辑:
这个代码很好。问题出在别处。

您需要实现onItemClick侦听器,在那里您可以获得已单击的视图/项目。从该视图中获取CheckedTextView并将其标记为已选中。

AFAIK
CHOICE\u MODE\u MULTIPLE
应处理此问题。请参阅教程。也许你应该试试android.R.layout.simple\u list\u item\u多选布局。谢谢你的回答!这不是问题所在。实际上还包括一个具有不同高度、文本大小和填充的
CheckedTextView