问题
I have a class and it extends from Fragment. Inside a class my editText is null and @AfterViews is not calling here is my code:
@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);
}
}
Please help me why editText is null thanks in advance!
回答1:
You have to let AndroidAnnotations
handle the layout inflation and inject the view reference:
@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");
}
}
An then use the generated class with _
prefix.
来源:https://stackoverflow.com/questions/25215899/androidannotations-afterviews-is-not-calling-and-edittext-is-null