按钮单击时应用程序停止,并显示错误消息“Appname已停止”

时间:2014-03-18 13:29:31

标签: android

标题1

这是我使用过的代码。我想为数据库添加一个名称。当我在EditText中输入名称时,它接受,当我点击提交按钮时,它会显示消息" App_name已经停止了#34;     activity_main.xml中     

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="70dp"
        android:text="USERNAME"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView1"
        android:layout_marginLeft="28dp"
        android:layout_toRightOf="@+id/textView1"
        android:ems="10"
        android:inputType="textPersonName" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="50dp"
        android:text="SUBMIT" />

</RelativeLayout>`

标题1

Main_Activity.java

package com.example.dbconcept;

import android.os.Bundle;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;

import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener {
Button b;
String user;
EditText usr;
SQLiteDatabase db;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b=(Button)findViewById(R.id.button1);
        try{
            db=openOrCreateDatabase("Mydb",MODE_PRIVATE,null);
            db.execSQL("create table table1(user varchar(50))");
        }
        catch(Exception e)
        {
        }
        b.setOnClickListener(this);
    }


    public void onClick(View arg0) {
        user=usr.getText().toString();
        db.execSQL("insert into table1 values('"+user+"')");


    }



}

2 个答案:

答案 0 :(得分:5)

您尚未初始化usr

只需添加

usr = (EditText) findViewById(R.id.editText1)

onCreate

答案 1 :(得分:2)

您忘记初始化使用EditText

usr = (EditText) findViewById(R.id.editText1)

onCreate(...)

之后的setContentView(R.layout.activity_main);中添加此内容