如何获取EditText值

时间:2014-04-16 11:37:37

标签: android android-edittext tostring

我有一个editText。当我尝试使用editText.getText().toString()从onClickListener获取它的值时,它会抛出nullPointerException。这很奇怪,因为另一个editText正常给出了值。

以下是代码:

 addButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            itemList.add(itemNameField.getText().toString());
            itemQuantityList.add(itemQuantityField.getText().toString());
            System.out.println(itemQuantityField.getText());
            adapter.notifyDataSetChanged();
            itemNameField.setText(" ");
        }
    });

itemList.add(itemNameField.getText().toString());行正常工作,但下一行会引发异常。

以下是错误日志:

04-16 11:39:58.935    1138-1138/com.grizeldi.gShopper E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
        at com.grizeldi.gShopper.activities.ShoppingList$3.onClick(ShoppingList.java:61)
        at android.view.View.performClick(View.java:2485)
        at android.view.View$PerformClick.run(View.java:9080)
        at android.os.Handler.handleCallback(Handler.java:587)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:123)
        at android.app.ActivityThread.main(ActivityThread.java:3683)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:507)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
        at dalvik.system.NativeStart.main(Native Method)

任何人都知道发生了什么事?

2 个答案:

答案 0 :(得分:0)

EditText ta = (EditText) findViewById(R.id.edittext1);

addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
   String s1 = ta.getText().toString();
}
});
//then check s1 is null or not

答案 1 :(得分:-1)

您在文件NPE

中的Line number 61上获得了ShoppingList.java:61

没有你的整个代码。

    itemList.add(itemNameField.getText().toString());
    itemQuantityList.add(itemQuantityField.getText().toString());
    System.out.println(itemQuantityField.getText());
    adapter.notifyDataSetChanged();

NPE的机会是     检查以下内容是否已正确初始化

itemNameField 
itemQuantityField
itemList
itemQuantityList
adapter