實現可以多選的Android ListView列表

fydxdk 9年前發布 | 18K 次閱讀 Android Android開發 移動開發

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>

 本文由用戶 fydxdk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!