findViewById () возвращает null для представлений в диалоге
Проблема в том, где и как я призываю к этой раскладкеКомпоненты, они всегда возвращают ноль.
setView(inflater.inflate(R.layout.search_layout, null))
Это отлично работает. Он отображает макет внутриDialog
Тем не менее, дети всегда возвращаются как нулевые .I 'findViewById(R.id.some_search_layout_children)
Я пытался очистить мой проект несколько раз, пытался реализовать другой класс для моегоDialog
, называетсяfindViewById()
как член моей главнойActivity
, внутриinitSearch()
метод, и внутри анонимной реализацииOnClickListener
дляDialog
, но все с тем же результатом. Я'Мы также пытались расколоть детей на независимыхView
ы и программно вызывая их:
TextView text = (TextView) findResourceById(R.id.new_independant_textview);
Но, опять же, тот же результат.
Это соответствующий код:
public class Xyz extends Activity {
public void onCreate(...) { // some listener will trigger initSearch() }
private void initSearch() {
AlertDialog.Builder searchDialog = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
searchDialog.setTitle("Search Photos");
searchDialog.setMessage("Specify tag and value...");
// R.layout.search_dialog is my custom layour, it displays fine, it works.
searchDialog.setView(inflater.inflate(R.layout.search_dialog, null));
EditText tagText = (EdiText) findViewById(R.id.tagField); // WILL RETURN NULL
searchDialog.setPositiveButton( ... ) ...
searchDialog.show();
}
Эта строка:
EditText text = (EditText) findViewById(R.id.tagField);
всегда возвращает ноль, независимо от того, как и гденазывается - глобально, местныйfinal
, так далее. - он просто возвращает ноль.
Вот XML моего кастомаDialog
расположение:
Это моеR.java
файл:
public static final class id {
public static final int action_settings=0x7f0a0011;
public static final int add_album=0x7f0a0001;
public static final int add_photo=0x7f0a000d;
public static final int albums_list=0x7f0a0003;
public static final int delete_album=0x7f0a000b;
public static final int exit_finder=0x7f0a000f;
public static final int new_directory=0x7f0a000e;
public static final int open_album=0x7f0a000a;
public static final int photos_grid=0x7f0a0000;
public static final int rename_album=0x7f0a000c;
public static final int search_dialog=0x7f0a0004;
public static final int search_icon=0x7f0a0002;
public static final int splash_rutgers=0x7f0a0009;
public static final int tagField=0x7f0a0006; // problematic
public static final int tagText=0x7f0a0005; / problematic
public static final int terminate_app=0x7f0a0010;
public static final int valueField=0x7f0a0008; // problematic
public static final int valueText=0x7f0a0007; // problematic
}