Когда я попытался получить доступ к текстовым изображениям во фрагменте, он бросает nullpointer exception.i объявили переменные и инициализировал его в onCreateView
после того, как View
завышен. я не знаю, почему он бросает ошибку,Фрагмент с использованием onCreateView вызывает исключение
Вот мой код
public class LoginTextHolder extends Fragment {
private View view;
EditText txtUsername;
EditText txtPassword;
public static LoginTextHolder newInstance() {
return new LoginTextHolder();
}
public LoginTextHolder() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_login_text_holder, container, false);
txtUsername = (EditText) view.findViewById(R.id.txtUserName);
txtPassword = (EditText) view.findViewById(R.id.txtPassword);
return view;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onDetach() {
super.onDetach();
}
public String[] giveData() {
String[] uNp = {"", ""};
uNp[0] = txtUsername.getText().toString();
uNp[1] = txtPassword.getText().toString();
return uNp;
}
}
Вот мой LogCat выход
FATAL EXCEPTION: main
java.lang.NullPointerException
at akshara.homeshop.fragments.LoginTextHolder.giveData(LoginTextHolder.java:65)
at akshara.homeshop.activities.LoginActivity.onLoginEventFragmentInteraction(LoginActivity.java:51)
at akshara.homeshop.fragments.LoginEventHandlers.onClick(LoginEventHandlers.java:76)
at android.view.View.performClick(View.java:4204)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Я пытался это исправить более 30 минут. Кто-нибудь знает, как исправить this.Any помощь будет оценена
Вот мой логин активность
public class LoginActivity extends FragmentActivity implements LoginEventHandlers.LoginEventFragmentInteractionListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
}
@Override
public void onLoginEventFragmentInteraction(View view) {
switch (view.getId()) {
case R.id.btnSignIn:
LoginTextHolder loginTextsFragment = LoginTextHolder.newInstance();
Log.e("Sony", loginTextsFragment.giveData()[0]);
Log.e("Sony", loginTextsFragment.giveData()[1]);
break;
case R.id.lblSignUp:
Log.e("Sony", "SignUp");
break;
}
}
}
Вот макет фрагмента
<RelativeLayout
android:id="@+id/loginTextHolderRoot"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:padding="@dimen/holderDefaultPadding"
tools:context="akshara.homeshop.fragments.LoginTextHolder">
<EditText
android:id="@+id/txtUserName"
style="@style/MyDefaultTextBoxStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/defaultWidgetTopMargin"
android:hint="@string/userName"/>
<EditText
android:id="@+id/txtPassword"
style="@style/MyDefaultTextBoxStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/txtUserName"
android:layout_marginTop="@dimen/defaultWidgetTopMargin"
android:hint="@string/password"
android:inputType="textPassword"/>
первое изображение от onCreateView
, а следующее - от giveData
Где вы звоните giveData? –
Что такое «на akshara.homeshop.fragments.LoginTextHolder.giveData (LoginTextHolder.java:65)», разместите раскладку xml и вы сначала искали SO? –
@EricS. он вызывает из активности (активность входа) – Sony