android 往dialog中加入listview,並實現listview中item的點擊事件
LinearLayout linearLayoutMain = new LinearLayout(this);//自定義一個布局文件 linearLayoutMain.setLayoutParams(new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); ListView listView = new ListView(this);//this為獲取當前的上下文 listView.setFadingEdgeLength(0); List<Map<String, String>> nameList = new ArrayList<Map<String, String>>();//建立一個數組存儲listview上顯示的數據 for (int m = 0; m < initData.size(); m++) {//initData為一個list類型的數據源 Map<String, String> nameMap = new HashMap<String, String>(); nameMap.put("name", initData.get(m).get(TagItem.NAME).toString()); nameList.add(nameMap); } SimpleAdapter adapter = new SimpleAdapter(UploadPhotoActivity.this, nameList, R.layout.item_uploadphoto_select_name, new String[] { "name" }, new int[] { R.id.tv_uploadphoto_select_name_item }); listView.setAdapter(adapter); linearLayoutMain.addView(listView);//往這個布局中加入listview final AlertDialog dialog = new AlertDialog.Builder(this) .setTitle("選擇患者姓名").setView(linearLayoutMain)//在這裏把寫好的這個listview的布局加載dialog中 .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.cancel(); } }).create(); dialog.setCanceledOnTouchOutside(false);//使除了dialog以外的地方不能被點擊 dialog.show(); listView.setOnItemClickListener(new OnItemClickListener() {//響應listview中的item的點擊事件 @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub TextView tv = (TextView) arg1 .findViewById(R.id.tv_uploadphoto_select_name_item);//取得每條item中的textview控件 et_name.setText(tv.getText().toString()); dialog.cancel(); } });
最後更新:2017-04-03 12:53:54