Android listView,自定义Adapter,另The constructor AlertDialog.Builder(MyAdapter) is undefined问题

        今天自学了Android listView的用法,为了在每一行列表中加button空间,需要自定义Adapter。下面是主要的过程。

        首先需要定义一个布局用于Adapter:如listlayout.xml。

        再定义一个MyAdapter类继承自BaseAdapter。

       在mainActivity中调用它:

               ListView list = (ListView) findViewById(R.id.ListView1); 
               MyAdapter adapter =new MyAdapter(this);  
               list.setAdapter(adapter);

               MyAdapter adapter =new MyAdapter(this);  

               list.setAdapter(adapter);

     具体的实现懒得说了,见上传的代码吧:

         http://download.csdn.net/detail/lxyxs/7520947

     运行效果图:

    

问题:    

另外遇到一个问题,在MyAdapter中我定义了Button的点击事件,用到了 AlertDialog。

      new AlertDialog.Builder(this)  

       .setTitle("listview")  

       .setMessage("第一个按钮")  

       .setPositiveButton("确定",new DialogInterface.OnClickListener() {  

           @Override  

           public void onClick(DialogInterface dialog,int which) {  

           }  

       })  

       .show();  

如果参数用this,是会报错的:

         The constructor AlertDialog.Builder(MyAdapter) is undefined

我理解的是这里用this其实是代表这个类,而MyAdapter并不是一个Activity,而我们是要在MainActivity这个Activity里用 AlertDialog。这是就要用到Context来联系了。注意到MainActivity里定义adapter的参数:

       MyAdapter adapter =new MyAdapter(this);  

这里的this就是MainActivity的context,那我们就可以在MyActivity中调用它。在MyAdapter类中定义:

       private Context context; 

然后构造函数中:

     public MyAdapter(Context context){  

this.context=context;

               this.mInflater = LayoutInflater.from(context);  

        mData=getData();

    } 

红色部分必须要

   最后使用 AlertDialog时:

            new AlertDialog.Builder(context)  

       .setTitle("listview")  

       .setMessage("第一个按钮")  

       .setPositiveButton("确定",new DialogInterface.OnClickListener() {  

           @Override  

           public void onClick(DialogInterface dialog,int which) {  

           }  

       })  

       .show();  

即把this换为context即可。

           



       


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值