开发者社区> 问答> 正文

如何响应AlertDialog上的listview点击事件?

我在AlertDialog上加进去了一个listview,画面都没有问题,但是如何响应listview的点击事件呢?我试了好几次,老是不行,有谁知道。

展开
收起
爵霸 2016-06-06 11:41:23 2152 0
1 条回答
写回答
取消 提交回答
  • 看你的是哪种了,你自己看看下面我刚写的

     
    private AlertDialog mDialog;
        private String[] mData = new String[26];
     
        /**
         * <b>第一种</b>
         * 
         */
        public void alertDialog1(Context pContext) {
            for (int i = 0; i < 26; i++) {
                mData[i] = String.valueOf((char) (i + 97));
            }
            ArrayAdapter<String> _adapter = new ArrayAdapter<String>(pContext,
                    android.R.layout.simple_dropdown_item_1line, mData);
            mDialog = new AlertDialog.Builder(this).setAdapter(_adapter,
                    new OnClickListener() {
                        // TODO 创建listview
                        @Override
                        public void onClick(DialogInterface pDialog, int pWhich) {
                            // TODO
     
                        }
                    }).create();
            mDialog.getListView().setOnItemClickListener(new OnItemClickListener() {
     
                @Override
                public void onItemClick(AdapterView<?> pParent, View pView,
                        int pPosition, long pId) {
                    // TODO
                    Toast.makeText(MainActivity.this, mData[pPosition],
                            Toast.LENGTH_SHORT).show();
                }
            });
            mDialog.show();
        }
     
        /**
         * <b>第二种</b>
         * 
         */
        public void alertDialog2(Context pContext) {
            for (int i = 0; i < 26; i++) {
                mData[i] = String.valueOf((char) (i + 97));
            }
            ArrayAdapter<String> _adapter = new ArrayAdapter<String>(pContext,
                    android.R.layout.simple_dropdown_item_1line, mData);
            ListView _lv = new ListView(pContext);
            _lv.setAdapter(_adapter);
            mDialog = new AlertDialog.Builder(this).create();
            mDialog.setView(_lv);
            ;
            _lv.setOnItemClickListener(new OnItemClickListener() {
     
                @Override
                public void onItemClick(AdapterView<?> pParent, View pView,
                        int pPosition, long pId) {
                    // TODO
                    Toast.makeText(MainActivity.this, mData[pPosition],
                            Toast.LENGTH_SHORT).show();
                    mDialog.dismiss();
                }
            });
            mDialog.show();
        }
    2019-07-17 19:28:05
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载