Android listView,自定义Adapter,另The constructor AlertDialog.Builder(MyAdapter) is undefined问题
2014-06-19 12:38
801 查看
今天自学了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即可。
首先需要定义一个布局用于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即可。
相关文章推荐
- the constructor AlertDialog.Builder(new View.OnClickListener() ) is undefined
- Android基础_常见Adapter/ExpandListView/Dialog/PopupWindow/自定义AlertDialog/单元测试/转移文件到SD卡(四)
- 兔子--The constructor AlertDialog.Builder(new View.OnClickListener(){}) is undefined
- 关于解决:the constructor AlertDialog.Builder(new View.OnClickListener() ) is undefined
- Android问题3-ListView Adapter(The content of the adapter has changed but ListView did not receive a n)
- android AlertBuilder创建的dialog,使用自定义样式
- Android开发之AlertDialog 关于重写onCreatDialog自定义对话框的问题 问题出自于《疯狂Android讲义》这本书
- android ListView添加自定义的Adapter的一个奇葩问题,注意了!
- Android自定义ListView或GridView适配器Adapter的getView方法不执行的问题
- Android之自定义对话框AlertDialog.Builder+getLayoutInflater().inflate
- The constructor SimpleAdapter(new View.OnClickListener(){},...)is undefined的问题及解决
- 【 Android】自定义的AlertDialog中的EditText无法调用输入法问题解决
- Android学习问题:关于AlertDialog中自定义布局带有的EditText无法弹出键盘
- Android ListView 自定义背景后 滚动时的背景变黑问题
- Android ListView 自定义背景后 滚动时的背景变黑问题
- 【转】Android之自定义Adapter的ListView
- The method setPositiveButton(int, DialogInterface.OnClickListener) in the type AlertDialog.Builder i
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案
- android 自定义adapter extends BaseAdapter,做有自己布局的listView
- android 简单列表对话框(AlertDialog.Builder().setItems())