【发布时间】:2016-06-22 07:06:00
【问题描述】:
我一直在搜索谷歌并没有找到答案。我可以跟踪复选框列表视图中选中项目的顺序吗?我还想一次只允许检查 5 个项目。
公共类 ToonList 扩展 ListFragment {
private ArrayAdapter<String> adapter;
int numberOfCheckboxesChecked = 0;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
ArrayList<String> toon_list = new ArrayList<String>();
toon_list.add("name1");toon_list.add("name2");toon_list.add("name3");//...
adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_multiple_choice, toon_list);
setListAdapter(adapter);
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
getListView().setLongClickable(true);
getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
String toon = (String) parent.getItemAtPosition(position);
Intent myIntent = new Intent(getActivity(), ToonDetails.class);
myIntent.putExtra("toon",toon);
getActivity().startActivity(myIntent);
return true;
}
});
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.share).setVisible(true);
menu.findItem(R.id.log_in).setVisible(true);
super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.share) {
SparseBooleanArray checked = getListView().getCheckedItemPositions();
ArrayList<String> selectedItems = new ArrayList<String>();
for (int i = 0; i < checked.size(); i++) {
// Item position in adapter
int position = checked.keyAt(i);
// Add sport if it is checked i.e.) == TRUE!
if (checked.valueAt(i))
selectedItems.add(adapter.getItem(position));
}
String[] outputStrArr = new String[selectedItems.size()];
for (int i = 0; i < selectedItems.size(); i++) {
outputStrArr[i] = selectedItems.get(i);
}
Intent intent = new Intent(getActivity(),
ResultActivity.class);
// Create a bundle object
Bundle b = new Bundle();
b.putStringArray("selectedItems", outputStrArr);
// Add the bundle to the intent.
intent.putExtras(b);
// start the ResultActivity
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
}
我想要发生的是,当我的选定项目字符串通过下一个活动时,我已经将其设置为将项目拆分为单独的字符串,然后设置为单独的文本视图。只有 5 个文本视图,这意味着我不能选择多于或少于 5 个项目。我不知道该怎么做。
当我将第一个项目传递给下一个活动时,我需要在我的列表顶部单击第一个项目,因为我需要在我的第一个文本视图中。其他 4 个名字的顺序无关紧要。
【问题讨论】:
-
请发布您的代码以及您在哪里遇到问题。
-
我用代码更新了它,并更好地描述了我正在尝试做的事情。
标签: android checkboxlist android-checkbox