触摸保存按钮时我的应用程序崩溃(在Eclipse中)

时间:2015-08-11 10:14:16

标签: android eclipse

我正在尝试联系管理器,但我有一个问题:当我触摸保存按钮以保存我的新联系人时,我的应用程序崩溃,我不知道为什么因为Eclipse没有说出任何错误码。我触摸按钮,应用程序崩溃,但它创建了一个新的数据库。

public class Insertarcontactes extends Activity {

    private TextView mTextView;
    private EditText mNom;
    private EditText mCognoms;
    private EditText mAdressa;
    private EditText mFixe;
    private EditText mMobil;
    private EditText mEmail;
    private DatabaseManager mDBM;
    protected Cursor mCursor;
    private SimpleCursorAdapter mAdapter;
    private Button mguardar;

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

        mDBM = new DatabaseManager();
        mDBM.openDB(this);

        mTextView = (TextView) findViewById(R.id.textView1);
        mNom = (EditText) findViewById(R.id.nom);
        mCognoms = (EditText) findViewById(R.id.cognoms);
        mAdressa = (EditText) findViewById(R.id.adressa);
        mFixe = (EditText) findViewById(R.id.telefonfix);
        mMobil = (EditText) findViewById(R.id.telefonmobil);
        mEmail = (EditText) findViewById(R.id.email);
        mguardar = (Button)findViewById(R.id.guardar);
    }

        public void guardalo(View v) {

                if(!mNom.getText().toString().equals("")) {

                mDBM.insertarContacto(
                        mNom.getText().toString(), 
                        mCognoms.getText().toString(),  
                        mAdressa.getText().toString(), 
                        mFixe.getText().toString(),  
                        mMobil.getText().toString(), 
                        mEmail.getText().toString()
                        );

                mNom.setText("");
                mCognoms.setText("");
                mAdressa.setText("");
                mFixe.setText("");
                mMobil.setText("");
                mEmail.setText("");

                mCursor.requery();
                mAdapter.notifyDataSetChanged();

                Intent vesalallista = new Intent(this, Llistacontactes.class);
                startActivity(vesalallista);

                }   
            }





        public void tornaenrere(View v){
            Intent tornaenrere = new Intent(this, Menuprincipal.class);
            startActivity(tornaenrere);
        }


    @Override
    protected void onDestroy()  {
        mDBM.closeDB();
        super.onDestroy();
    }

2 个答案:

答案 0 :(得分:0)

转到Android清单文件并添加写联系人权限

答案 1 :(得分:0)

您的mCursor未初始化,并且您在guardalo()方法中调用其requery()方法mCursor.requery();。因此它应该给你NullPointerException

您需要在mCursor方法中初始化此onCreate()对象。