我正在尝试联系管理器,但我有一个问题:当我触摸保存按钮以保存我的新联系人时,我的应用程序崩溃,我不知道为什么因为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();
}
答案 0 :(得分:0)
转到Android清单文件并添加写联系人权限
答案 1 :(得分:0)
您的mCursor
未初始化,并且您在guardalo()方法中调用其requery()方法mCursor.requery();
。因此它应该给你NullPointerException
您需要在mCursor
方法中初始化此onCreate()
对象。