错误:java.lang.IllegalStateException:无法执行活动的方法

时间:2013-05-16 16:00:44

标签: android nullpointerexception

抱歉,我是android的新手

我有2个 EditTexts 和1个按钮当我按下按钮时会打印EditTexts的值,但我会给出错误

XML:

    <Button
        android:id="@+id/submit"
        android:layout_width="212dp"
        android:layout_height="wrap_content"
        android:layout_x="52dp"
        android:layout_y="337dp"
        android:text="@string/Submit"
        android:onClick="submit" />

    <EditText
        android:id="@+id/quantity"
        android:layout_width="182dp"
        android:layout_height="wrap_content"
        android:layout_x="9dp"
        android:layout_y="86dp"
        android:ems="10" />

    <EditText
        android:id="@+id/Unit"
        android:layout_width="182dp"
        android:layout_height="wrap_content"
        android:layout_x="11dp"
        android:layout_y="15dp"
        android:ems="10" >

        <requestFocus />
   </EditText>

Java类是:

    public class add extends Activity
    {

        private static  String[] montharray; 

        Button   mButton;

        EditText Unit;
        EditText quantity;

        private int days;

        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.add);

            Unit          =(EditText) findViewById(R.id.unit);
            quantity      =(EditText) findViewById(R.id.quantity);
            mButton       =(Button) findViewById(R.id.submit);
        }  



        public void submit(View view) 
        {


            System.out.println("Unit=    "+Unit.getText().toString()+"   quantity=   "+quantity.getText().toString());  


        }
}

这是thr错误:

05-16 15:37:35.857: E/AndroidRuntime(17951): FATAL EXCEPTION: main
05-16 15:37:35.857: E/AndroidRuntime(17951): java.lang.IllegalStateException: Could not execute method of the activity
...


05-16 15:37:35.857: E/AndroidRuntime(17951): Caused by: java.lang.NullPointerException
05-16 15:37:35.857: E/AndroidRuntime(17951): at net.learn2develop.UsingIntent.add.submit(add.java:56)

我启动所有对象, java.lang.NullPointerException 是什么?

2 个答案:

答案 0 :(得分:1)

id是区分大小写的......

你应该这样做:findViewById(R.id.Unit);

答案 1 :(得分:0)

Unit在此大写

<EditText
    android:id="@+id/Unit"
    android:layout_width="182dp"
    android:layout_height="wrap_content"
    android:layout_x="11dp"
    android:layout_y="15dp"
    android:ems="10" >

但不在您的代码中

Unit          =(EditText) findViewById(R.id.unit);

您应该在xml中将其更改为小写。此外,您应遵循命名约定的标准。类名应该是camelcased(所有单词都以大写字母开头),变量名应该是mixcase(以小写开头,大写后跟单词,String mixedCase;)这不是必要的,但它很可能会让你在将来感到悲伤。它还使其他人更容易理解你拥有的东西。