androd中显示listview的dialog,并实现listview的点击事件

来源:互联网 发布:易语言json解析教程 编辑:程序博客网 时间:2024/04/27 14:49
    private void setListviewDialog() {        //自定义一个布局文件        LinearLayout linearLayoutMain = new LinearLayout(this);        linearLayoutMain.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));        //自定义一个listview        ListView listView = new ListView(this);        listView.setFadingEdgeLength(0);        //建立一个数组存储listview上显示的数据        List<Map<String, String>> nameList = new ArrayList<Map<String, String>>();        for (int m = 0; m < mDatas.size(); m++) {//initData为一个list类型的数据源              Map<String, String> nameMap = new HashMap<String, String>();            nameMap.put("name", mDatas.get(m).toString());            nameList.add(nameMap);        }        SimpleAdapter adapter = new SimpleAdapter(this, nameList, R.layout.item_consume_cost_apply_textview,            new String[] { "name" }, null);        listView.setAdapter(adapter);        linearLayoutMain.addView(listView);//往这个布局中加入listview          final AlertDialog dialog = new AlertDialog.Builder(this).setTitle("选择患者姓名").setView(linearLayoutMain)//在这里把写好的这个listview的布局加载dialog中              .setNegativeButton("取消", new DialogInterface.OnClickListener() {                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<?> parent, View view, int position, long id) {                    // TODO Auto-generated method stub  //                  TextView tv = (TextView) parent.findViewById(R.id.tv_uploadphoto_select_name_item);//取得每条item中的textview控件  //                  et_name.setText(tv.getText().toString());                    dialog.cancel();                }            });    }
0 0