0

对不起,我是安卓新手

我有 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());  


        }
}

这是错误:

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

4

2 回答 2

1

id 区分大小写...

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

于 2013-05-16T16:03:08.587 回答
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 中将其更改为小写。此外,您应该遵循命名约定的标准。类名应该是驼峰式(所有单词都以大写字母开头),变量名应该是混合大小写(以小写开头,后面的单词大写 ie String mixedCase;)这不是必需的,但它很可能会在未来让你感到悲伤。它还使其他人更容易理解您拥有的东西。

于 2013-05-16T16:03:27.807 回答