實現可以多選的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>