我有一个自定义对话框,其中一个editText视图和两个按钮ok并取消。我有一个自定义列表视图,显示从数据库中提取的一些数据行。当用户点击列表视图的行时,自定义对话框向用户显示,以编辑选定的行。我想要做的是能够将与选定行绑定的对象传递给对话框,以便我可以显示正在编辑的数据。如何将变量或对象传递给android中的对话框
这里是我的活动类:
public class TestDatabaseActivity extends ListActivity {
private CommentsDataSource datasource;
private CommentAdapter adt;
static final int CUSTOM_DIALOG_ID = 0;
private TextView dialog_editComment;
private EditText dialog_txtEditComment;
private Button dialog_btnOk, dialog_btnCancel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
datasource = new CommentsDataSource(TestDatabaseActivity.this);
datasource.open();
getList();
}
private void getList()
{
List<Comment> values = datasource.getAllComments();
adt=new CommentAdapter(TestDatabaseActivity.this,R.layout.comment_row,values);
setListAdapter(adt);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
CommentAdapter adapter= (CommentAdapter) getListAdapter();
final Comment cmt = adapter.mListComment.get(position);
System.out.println(cmt.getId()+cmt.getComment());
//cmt is the object which i want to pass to my dialog
showDialog(CUSTOM_DIALOG_ID);
}
private Button.OnClickListener customDialog_UpdateOnClickListener = new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//save the value and update list
}
};
private Button.OnClickListener customDialog_DismissOnClickListener
= new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
dismissDialog(CUSTOM_DIALOG_ID);
}
};
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
Dialog dialog = null;;
switch(id) {
case CUSTOM_DIALOG_ID:
dialog = new Dialog(TestDatabaseActivity.this);
dialog.setContentView(R.layout.comment_edit_dialog);
dialog.setTitle("Edit");
dialog_editComment = (TextView)dialog.findViewById(R.id.editComment);
dialog_txtEditComment = (EditText)dialog.findViewById(R.id.txtComment);
dialog_btnOk = (Button)dialog.findViewById(R.id.btnOk);
dialog_btnCancel = (Button)dialog.findViewById(R.id.btnCancel);
dialog_btnOk.setOnClickListener(customDialog_UpdateOnClickListener);
dialog_btnCancel.setOnClickListener(customDialog_DismissOnClickListener);
break;
}
return dialog;
}
}
请你给我怎么做 – rockstar 2012-03-31 14:40:33
我想这一个例子,但在该行dialog_editComment =(TextView的)dialog.findViewById(R.id.editComment);我得到的错误消息像方法findViewById是未定义的类型AlertDialog.Builder – rockstar 2012-03-31 15:13:52
请重新检查现在替换对话与视图在几个placers。 – Ishu 2012-03-31 15:17:08