gpt4 book ai didi

java - 无法从 editText 获取文本

转载 作者:行者123 更新时间:2023-12-01 15:40:32 25 4
gpt4 key购买 nike

    public class screen2 extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.screen2);

final Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

//AInteger.parseInt(string)
System.out.println("1");
EditText et = (EditText)findViewById(R.id.editText1);
System.out.println("2");
int zipCode = Integer.parseInt(et.getText().toString());
System.out.println("3");
System.out.println(zipCode);

System.out.println("dude...5");
}
});
}
}

此代码在 logcat 中显示错误:

    11-13 19:58:06.806: W/KeyCharacterMap(281): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
11-13 19:58:09.471: I/System.out(281): 1
11-13 19:58:09.471: I/System.out(281): 2
11-13 19:58:09.477: D/AndroidRuntime(281): Shutting down VM
11-13 19:58:09.477: W/dalvikvm(281): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-13 19:58:09.527: E/AndroidRuntime(281): FATAL EXCEPTION: main
11-13 19:58:09.527: E/AndroidRuntime(281): java.lang.NullPointerException
11-13 19:58:09.527: E/AndroidRuntime(281): at com.example.andtwi.screen2$1.onClick(screen2.java:23)
11-13 19:58:09.527: E/AndroidRuntime(281): at android.view.View.performClick(View.java:2408)
11-13 19:58:09.527: E/AndroidRuntime(281): at android.view.View$PerformClick.run(View.java:8816)
11-13 19:58:09.527: E/AndroidRuntime(281): at android.os.Handler.handleCallback(Handler.java:587)
11-13 19:58:09.527: E/AndroidRuntime(281): at android.os.Handler.dispatchMessage(Handler.java:92)
11-13 19:58:09.527: E/AndroidRuntime(281): at android.os.Looper.loop(Looper.java:123)
11-13 19:58:09.527: E/AndroidRuntime(281): at android.app.ActivityThread.main(ActivityThread.java:4627)
11-13 19:58:09.527: E/AndroidRuntime(281): at java.lang.reflect.Method.invokeNative(Native Method)
11-13 19:58:09.527: E/AndroidRuntime(281): at java.lang.reflect.Method.invoke(Method.java:521)
11-13 19:58:09.527: E/AndroidRuntime(281): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-13 19:58:09.527: E/AndroidRuntime(281): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-13 19:58:09.527: E/AndroidRuntime(281): at dalvik.system.NativeStart.main(Native Method)

虽然它看起来像一个空指针异常,但我认为我正在做我在论坛上找到的事情。这也是我的相关 xml 文件的代码。谁能建议我哪里做错了?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enter Zipcode" />

<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:maxLength="5" >

<requestFocus />
</EditText>

<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Get movies from Flixster" />

</LinearLayout>

代码也会在此处中断:

int zipCode =  Integer.parseInt(et.getText().toString());

最佳答案

试试这个:

Button button1 = (Button)findViewById(R.id.button1);  
EditText et = (EditText)findViewById(R.id.editText1);

button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

System.out.println("1");
System.out.println("2");
String zipCode = et.getText().toString();
System.out.println("3");
System.out.println(zipCode);
}
}

我认为,您不需要在那里编写 String zipCode = (String)et.getText().toString(); 因为它已经返回了 String 对象。

希望您在声明 ButtonEditText 之前不要错过包含 setContentView(R.layout.your_xml_file);

编辑1:

你似乎没有遇到问题

int zipCode=Integer.parseInt(et.getText().toString()); 那里。尝试修改上面的代码。

您可能会遇到空指针异常,因为您将 String s=et.getText().toString() 作为 null。请在将其转换为 int< 之前检查它是否为 null/.

按钮button1 = (Button)findViewById(R.id.button1);
EditText et = (EditText)findViewById(R.id.editText1);

button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

System.out.println("1");
System.out.println("2");
String check = et.getText().toString();
int zipCode=0;
if(!check.equals(""))
zipCode=Integer.parseInt(check);
System.out.println("3");
System.out.println(zipCode);
}
}

关于java - 无法从 editText 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8117186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com