package com.tarena.listview.multiple;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MultipleChoiceListViewActivity extends Activity {
String[] arrListViewData = { "aaaa1", "bbbb2", "cccc3", "1111a", "2222b",
"3333c" };
ListView mListView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 找到ListView
mListView = (ListView) findViewById(R.id.MultipleListView);
mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
// 创建适配器Adapter
ListAdapter mAdapter = new ArrayAdapter<String>(this,
R.layout.listview_multiple_item, arrListViewData);
// 结合视图和数据
mListView.setAdapter(mAdapter);
// 我们能显示,并且能改变外观
// 我们要得到所有选中的item
// mListView.setOnItemClickListener(listener)
// mListView.setOnItemSelectedListener(listener)
mListView.setOnItemClickListener(
new OnItemClickListener() {
@Override
public void onItemClick(
AdapterView<?> parent
, View view
, int position
, long id) {
//parent转换为ListView
ListView nowListView = (ListView) parent;
//能得到我们选中的Item的Id
long[] arrItemIds = nowListView.getCheckItemIds();
//取得适配器Item的总数
int intListCount =
nowListView.getAdapter().getCount();
//保存适配器
ListAdapter mListAdapter = nowListView.getAdapter();
//用于存储我们找到的选中的Item对象
Object[] arrItems = new Object[arrItemIds.length];
//循环所有需要找到的ItemId
for(int j=0;j<arrItemIds.length;j++){
//遍历Adapter里面所有的Item,
//找到ItemId对应的项目
for(int i=0;i<intListCount;i++){
Object tempItem = mListAdapter.getItem(i);
if(arrItemIds[j] == mListAdapter.getItemId(i)){
//保存能对应上的Item
arrItems[j] = tempItem;
}
}
}
Toast.makeText(MultipleChoiceListViewActivity.this
, arrItems.toString()
, Toast.LENGTH_LONG).show();
//这些方法目前都不行
// nowListView.getCheckedItemIds();
// nowListView.getCheckedItemPosition();
// nowListView.getCheckedItemPositions();
}
});
//mListView.get
}
}