return java NullPointerException将edittext解析为int

时间:2015-11-06 15:15:38

标签: java android android-studio

我想在EditText中输入一个数字并将其解析为整数,但我在标题中有错误。

这是我的代码:

final Context contextmatrice = this;
    public static int n=0;
    public EditText editsize;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_matrice);
    }

    public void ToAddMat (View ViewToAddMat) {


        final Dialog matricesize = new Dialog(contextmatrice);
        matricesize.setContentView(R.layout.dialogmatricesize);

        editsize = (EditText) findViewById(R.id.editsize);


        Button dialogbutton = (Button) matricesize.findViewById(R.id.closedialog);
        dialogbutton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                n = Integer.parseInt(editsize.getText().toString());
                matricesize.dismiss();
                Intent IntentToAddMat = new Intent(MatriceActivity.this, AddMatriceActivity.class);
                startActivity(IntentToAddMat);

            }

        }); 

这是我的dialog.xml:

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_centerInParent="true">

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="Entrez la taille de\n vos matrices carrées"
    android:id="@+id/editsize"
    android:gravity="center"
    android:inputType="number"
    android:background="#ffffff"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="OK"
    android:onClick="closedialog"
    android:id="@+id/closedialog"
    android:layout_gravity="center"/>

</LinearLayout>

在按钮上单击一个对话框,用户可以输入一个值,然后在另一个按钮上单击关闭对话框并启动另一个活动,该值将赋予变量 n

提前致谢。 问候。

3 个答案:

答案 0 :(得分:2)

EditText属于对话框的布局。正如您对该按钮所做的那样,您应该使用matricesize来检索它。 E.g。

editsize = (EditText) matricesize.findViewById(R.id.editsize);

答案 1 :(得分:2)

editsize = (EditText) findViewById(R.id.editsize);

此代码从活动布局获取视图,而不是对话框。改为:

editsize = (EditText) matricesize.findViewById(R.id.editsize);

就像,当您获得按钮视图时。

答案 2 :(得分:1)

如果EditText没有内容,getText()将返回null。