androidannotations @AfterViews не вызывает, а editText имеет значение null

У меня есть класс, и он простирается от фрагмента. Внутри класса мой editText имеет значение null, а @AfterViews не вызывает, вот мой код:

@EFragment
public class Search extends Fragment {

private final String TAG = Search.class.getCanonicalName();
private static ProgressDialog progressDialog;
private Activity activity;
private ArrayList<String> urlList = new ArrayList<String>();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.search, container, false);
    Log.i(TAG, "onCreateView");
    return rootView;
}
@ViewById
RadioButton firstRadio;

@ViewById
RadioButton secondRadio;

@ViewById(R.id.editText1)
EditText editText1;

@AfterViews
void afterViews() {
    int a = 1;
    a++;
    Log.i(TAG, editText1 + "AfterViews");
    Log.i(TAG, a + "aaaaaaaa");
}

private void extractUrlsFromText(String s) {
    Matcher matcher = Patterns.WEB_URL.matcher(s);
    while (matcher.find())
        urlList.add(matcher.group());
}

public void searchWebUrl() {
    Log.i(TAG, editText1 + "searchWebUrl");
    String text = editText1.getText().toString();
    if (!TextUtils.isEmpty(text))
        extractUrlsFromText(text);
        parseWithUrls(urlList);
        ((Main) getActivity()).switchToFragmentUrlList(urlList);
}

}

Пожалуйста, помогите мне, почему editText имеет значение null, спасибо заранее!


person nAkhmedov    schedule 09.08.2014    source источник


Ответы (1)


Вы должны позволить AndroidAnnotations обрабатывать инфляцию макета и вставлять ссылку на представление:

@EFragment(R.layout.my_fragment_layout)
public class MyFragment extends Fragment {

    @ViewById(R.id.my_text_view) // must exist in layout, must be of correct type
    TextView mTextView;

    @AfterViews
    void initViews() {
        mTextView.setText("Hello World");
    }
}

Затем используйте сгенерированный класс с префиксом _.

person S.D.    schedule 09.08.2014
comment
Я уже сделал это, но мой xml не отображается. Если я напишу View rootView = inflater.inflate(R.layout.search, container, false); Log.i(TAG, onCreateView); вернуть rootView; внутри onCreateVies он будет отображаться. - person nAkhmedov; 09.08.2014
comment
@nAkhmedov Очистите сгенерированные классы, скомпилируйте снова. Используйте только что сгенерированный класс _. Если он не генерируется, есть проблема с настройкой. - person S.D.; 09.08.2014
comment
Я вызвал метод класса Search в следующей информации в основном действии. - person nAkhmedov; 09.08.2014
comment
((Поиск) pagerAdapter.getCurrFragment()).searchWebUrl(); - person nAkhmedov; 09.08.2014
comment
Должен ли @EFragment(R.layout.my_fragment_layout) отображаться layout?layout отображается только в том случае, если я пишу inflater.inflate(R.layout.search, container, false) внутри onCreateView. - person nAkhmedov; 09.08.2014
comment
если я использую _ как ((Search_) pagerAdapter.getCurrFragment()).searchWebUrl(); появилось исключение приведения класса. не может применить поиск к поиску_ - person nAkhmedov; 09.08.2014
comment
Вы когда-нибудь решали это? у меня точно такая же проблема - person Brandon; 05.03.2016