實現可以多選的Android ListView列表
public class TestActivity extends Activity { /代碼中寫布局的View*/ private LinearLayout mParentLinearLayout; /標題TextView/ private TextView mTitleTv; /**展示數據的ListView/ private ListView mListView; /自定義的數據*/ private String[] mStrArray; /ListView的數據適配器/ private ArrayAdapter<String> arrayAdapter; /**定義一StringBuffer/ private StringBuffer mBuffer;@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initViews(); initListeners(); }
private void initListeners() { mListView.setOnItemSelectedListener(mLvOnItemSelectedListener); mListView.setOnItemClickListener(mLvOnItemClickListener); }
private void initViews() { /初始化mParentLinearLayout*/ mParentLinearLayout = new LinearLayout(TestActivity.this); /設置布局寬高/ LinearLayout.LayoutParams mLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); /**布局排列方式/ mParentLinearLayout.setOrientation(LinearLayout.VERTICAL); /*背景/ mParentLinearLayout.setBackgroundColor(Color.parseColor("#F0F0F0"));
mTitleTv = new TextView(TestActivity.this); mTitleTv.setLayoutParams(mLayoutParams); mTitleTv.setText("請選擇列表數據!"); mTitleTv.setTextColor(Color.BLACK); /*往布局中添加TextView/ mParentLinearLayout.addView(mTitleTv);
mListView = new ListView(TestActivity.this); mListView.setLayoutParams(mLayoutParams); mListView.setBackgroundColor(Color.LTGRAY); mBuffer = new StringBuffer(); mStrArray = new String[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; arrayAdapter = new ArrayAdapter<String>(TestActivity.this, android.R.layout.simple_list_item_multiple_choice, mStrArray); /設置ListView的選擇模式*/ mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); mListView.setAdapter(arrayAdapter); /往布局中添加ListView*/ mParentLinearLayout.addView(mListView); setContentView(mParentLinearLayout); }
private OnItemSelectedListener mLvOnItemSelectedListener = new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { /*選中后的操作/ mBuffer.append(arg0.getItemAtPosition(arg2).toString() + "-"); mTitleTv.setText(mBuffer.toString()); }
public void onNothingSelected(AdapterView<?> arg0) {
} }; OnItemClickListener mLvOnItemClickListener = new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { /點擊后的操作*/ mBuffer.append(arg0.getItemAtPosition(arg2).toString() + ""); mTitleTv.setText(mBuffer.toString()); /還可以判斷,如果已經選中,點擊的話應該表示不選中*/ } }; }</pre>