Android在哪里放置代码来修改dialogfragments中的字段?

时间:2013-06-27 00:59:59

标签: android autocompletetextview dialogfragment

我正在创建一个用于登录对话框的DialogFragment。我希望自动完成用作用户ID的电子邮件地址。我找到了一个很好的教程here,但它并没有真正处理使用DialogFragment。

我目前的代码是:

DialogFragment dialog = new LoginDialogFragment();
AutoCompleteTextView emailLoginId = (AutoCompleteTextView) findViewById(R.id.login_user_id);
if (null == emailLoginId) {
    Log.d(tag, "EmailLoginId is null!");
}
// get list of drivers
ArrayAdapter<String> driverList = dbHelper.getAllDriverEmailStringAdapter();
Log.d(tag, "Driver List size is " + driverList.getCount());
emailLoginId.setAdapter(driverList);
dialog.show(getSupportFragmentManager(), "LoginDialogFragment");

如您所见,我正在创建对话框,然后附加名称列表。不幸的是,这给了我一行空指针异常:

emailLoginId.setAdapter(driverList);

我相信这对我来说可能是一些令人尴尬的简单疏忽,但如果它让我前进的话,那没关系。

我在LoginDialogFragment的onStart()和onCreateView()部分尝试了相同的代码并进行了适当的修改。在所有情况下,它都找不到字段,登录ID字段或密码字段。

在onStart()和onCreateView()例程中调用时,我使用了:

AutoCompleteTextView emailLoginId = (AutoCompleteTextView) getActivity().findViewById(R.id.login);

这是错的吗?

我可以计算出可能导致该问题的唯一的另一件事是不实际直到dialog.show(getSupportFragmentManager(),“LoginDialogFragment”)被称为创建对话框,但不与文档嘲弄并且你仍然认为这至少可以在onStart()例程中起作用。

提前感谢你的时间。

0 个答案:

没有答案