閱讀454 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go android自定義button點擊效果
  下一篇:go CodeMirror與jquery UI-Tabs混合使用 注意事項