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

Android在哪里放置代码来修改dialogfragments中的字段?,android,autocompletetextview,dialogfragment,Android,Autocompletetextview,Dialogfragment,我正在创建一个用于登录对话框的DialogFragment。我想对用作用户ID的电子邮件地址进行自动补全。我找到了一个很好的教程,但它并没有真正涉及到使用DialogFragment 我目前的代码是: DialogFragment dialog = new LoginDialogFragment(); AutoCompleteTextView emailLoginId = (AutoCompleteTextView) findViewById(R.id.login_user_id); if (n

我正在创建一个用于登录对话框的DialogFragment。我想对用作用户ID的电子邮件地址进行自动补全。我找到了一个很好的教程,但它并没有真正涉及到使用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");
我相信这可能是我的一些令人尴尬的简单疏忽,但如果这能让我向前迈进,那没关系

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

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

AutoCompleteTextView emailLoginId = (AutoCompleteTextView) getActivity().findViewById(R.id.login);
这不对吗

我唯一能想到的另一件可能导致问题的事情是,在调用dialog.show(getSupportFragmentManager(),“LoginDialogFragmentManager”)之前,对话框实际上是不会创建的,但这与文档不符,您仍然认为这至少在onStart()例程中是可行的


提前感谢您的时间。

堆栈跟踪可以帮助我们帮助您!尝试在对话框片段的创建视图中执行此操作。值得一试。堆栈跟踪除了告诉我问题是emailLoginId.setAdapter(driverList)语句上的空指针异常外,没有给我太多信息。我尝试将代码移动到onCreateView,但得到了相同的结果,它仍然在同一行上使用空指针。我从findViewById得到的结果每次都是空值。我进行了双重和三重检查,因此我知道字段的id是正确的。我还在挠头。我不再相信这是个愚蠢的错误。我尝试签入每个DialogFragment生命周期方法,但无法访问其中任何一个方法中的字段。我可能不得不将其作为常规活动重写,并将其显示为一个对话框,但这似乎是一个难题。
AutoCompleteTextView emailLoginId = (AutoCompleteTextView) getActivity().findViewById(R.id.login);