请考虑以下代码:
private View.OnClickListener mTemplateButtonListener = new View.OnClickListener()
{
public void onClick(View view)
{
AlertDialog.Builder builder = new AlertDialog.Builder(NewMailActivity.this);
builder.setTitle(getString(R.string.str_new_mail_activity_choose_template));
final Cursor c = MailData.getTemplateCursor();
builder.setCursor(c, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int item)
{
c.moveToPosition(item);
et_body.setText(c.getString(c.getColumnIndex(MailData.TEMPLATES_TABLE_COL_BODY)));
et_subject.setText(c.getString(c.getColumnIndex(MailData.TEMPLATES_TABLE_COL_SUBJECT)));
}
}, MailData.TEMPLATES_TABLE_COL_SUBJECT);
templatesAlertDialog = builder.create();
templatesAlertDialog.show();
}
};
我用它来调出AlertDialog中的模板列表。
使用MailData.getTemplateCursor()
加载数据的游标它向SQLite数据库查询数据。我无法弄清楚在哪里关闭光标的正确位置,因为如果我这样做 - 我不会得到任何数据。
有没有办法用ArrayList填充AlertDialog?
编辑:我找到了一个使用ListAdapter的解决方案,但它需要布局等,这使得它不必要复杂。还有其他方法吗?