需求是这样:
在ListView中我加了一个Button,要求点击Button后弹出一个Dialog选择框,在选择并点击确认后,更新数据库并刷新ListView的中的title 栏位.
但是由于这个Button的onClick事件是在继承自SimpleAdapter类的 MySimpleAdapter中处理的,MySimpleAdapter大致如下
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
Button btn = (Button)view.findViewById(R.id.btn_process);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder dlg = new AlertDialog.Builder(context); //context在构造时保存
dlg.setTitle("请输入");
final String []items ={"选项1","选项2"};
dlg.setSingleChoiceItems(items , 0, new
android.content.DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, items[which], Toast.LENGTH_SHORT).show(); //在此能够显示所选择的内容
}
});
dlg.setPositiveButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
...
dlg.show();
}
}
}
...
现在的问题是我如何更新数据库呢?难道在Adapter中直接去操作数据库么?
更麻烦的是我如何让ListView刷新呢?
以上
感谢
------解决方案--------------------
第一个问题不知道怎么解决
刷新listview 可以试试在使用适配器的对象的notifyDataSetChanged()方法刷新
------解决方案--------------------
public void onClick(DialogInterface dialog, int which) {
更新数据库的代码。。。
}
说实在,你这个问题难度为0,拜托加点难度。
------解决方案--------------------
- Java code
dlg.setPositiveButton("确定", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {//更新数据库代码,如果耗时长请使用线程更新}});