[英]How to change value of variable after button click and get that value in different activity
[英]How to change the value of a variable on the click of a button
enterbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int get_form_edittext=Integer.parseInt(edtx.getText().toString());
if(get_form_edittext==111){
flag=1;}
else{
flag=0;
}
首先,我用 0 初始化了標志變量。我希望如果用戶在編輯文本中輸入“o”,然后按下回車按鈕,則標志變量的值應更改為 1,否則該值應保持為 0。我已經實現了上述邏輯,但是在點擊進入應用程序時崩潰了。
日志貓
java.lang.NumberFormatException: For input string: "o"
at java.lang.Integer.parseInt(Integer.java:608)
at java.lang.Integer.parseInt(Integer.java:643)
at com.sumita.tic_tac_toe.MainActivity$2.onClick(MainActivity.java:36)
at android.view.View.performClick(View.java:6412)
at android.view.View$PerformClick.run(View.java:25341)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:6977)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:528)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:910)
您必須在EditText
中聲明inputType="number"
。
activity_main.xml
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number" />
MainActivity.java
button.setOnClickListener(v -> {
String editTextString = editText.getText().toString().trim();
if (editTextString != null && !editTextString.isEmpty()) {
int value = Integer.parseInt(editTextString);
flag = value == 111 ? 1 : 0;
}
});
兄弟,那是因為 'o' 不是 Integer。logcat 錯誤表明它在將“o”轉換為 Integer 時失敗。這樣做解決方案 1:
String text = editText.getText().toString();
if (text != null && !text.isEmpty()) {
if(string.matches("\\d+(?:\\.\\d+)?")){
// here the string is a number
// you can now check for 111 here
}else{
// and here the string is not a number
}
}
解決方案 2:
使用 try-catch:
try{
int get_form_edittext=Integer.parseInt(edtx.getText().toString());
if(get_form_edittext==111){
flag=1;
}else{
flag=0;
}
}catch(Exception e){
flag=0;
}
解決方案 3:使您的 editText 數字化:將其添加到 XML 中的編輯文本中
android:inputType="number"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.