androd中顯示listview的dialog,並實現listview的點擊事件

    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();
                }
            });
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章