Последние несколько часов я пытался найти ответ на свой вопрос, и после того, как попробовал разные вещи, я не смог решить свою проблему.
Я хочу использовать Edittextи кнопка, которая делает что-то с этим текстом редактирования.Вот мой код в frag_main.xml:
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/email_input"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:hint="Email"
android:inputType="textEmailAddress"/>
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/send_email_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Send"/>
И мой код в MainFragment.java:
import ...
public class MainFragment extends Fragment {
private TextInputLayout textInputEmail;
public MainFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
textInputEmail = (TextInputLayout) view.findViewById(R.id.text_input_email);
Button send_button = (Button) view.findViewById(R.id.send_email_button);
send_button.setOnClickListener(view -> buttonSend(view));
return view;
}
private boolean validateEmail() {
String emailInput = textInputEmail.getEditText().getText().toString().trim();
if (emailInput.isEmpty()) {
textInputEmail.setError("Field can't be empty!");
return false;
} else {
textInputEmail.setError(null);
return true;
}
}
public void buttonSend(View v) {
if (!validateEmail() ) {
return;
}
/*do something*/
}
}
Для этого я не получаю никаких ошибок ни в одном из моих кодов, поэтому яне понимаю, в чем проблема.Предупреждение, которое я получаю в MainActivity.java «getText», может вызвать «java.lang.NullPointerException» точно в части .getText () в методе validateEmail ().
Надеюсь, я хорошо это объяснил,Спасибо всем, кто пытается помочь!
РЕДАКТИРОВАТЬ: Я считаю, что я не объяснил это достаточно хорошо.Я забыл сказать, что когда я нажимаю кнопку «Отправить», мое приложение мгновенно падает.Это проблема, которую я пытаюсь решить.
РЕДАКТИРОВАТЬ 2: Вот то, что я считаю "трассировкой стека".
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.luka.straingeremailapp, PID: 2728
java.lang.IllegalStateException: Could not find method buttonSend(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:424)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:381)
at android.view.View.performClick(View.java:6291)
at android.view.View$PerformClick.run(View.java:24931)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7425)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)