마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

화면 전환시 강제종료 됩니다.

0 추천
package com.example.em_test;

import java.util.ArrayList;

import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Add_change extends ActionBarActivity  {

 TextView textview1,textview2;
 EditText editText1, editText2;
 Button button1,button2;
 private static final String TAG = "DB";
 private DbOpenHelper mDbOpenHelper;
 private Cursor mCursor;
 private InfoClass mInfoClass;
 private ArrayList mInfoArray; 

 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.page3);
  
  textview1=(TextView)findViewById(R.id.textView1);
  textview2=(TextView)findViewById(R.id.textView2);
  editText1=(EditText)findViewById(R.id.editText1);
  editText2=(EditText)findViewById(R.id.editText2);
  button1=(Button)findViewById(R.id.savebtn1);
  button2=(Button)findViewById(R.id.delbtn2);
  
  Intent intent = getIntent();
  int a= intent.getIntExtra("a",1);




  if(a==0){
  Intent intentdata = getIntent();
  String number = intentdata.getStringExtra("number");
  editText1.setText(number);
  button1.setVisibility(View.VISIBLE);
  button2.setVisibility(View.INVISIBLE);
  
  }
  
  else{
   Intent intentdata = getIntent();
   String title = intentdata.getStringExtra("title");
   String number = intentdata.getStringExtra("number");
   editText1.setText(number);
   editText2.setText(title);
   button1.setVisibility(View.INVISIBLE);
   button2.setVisibility(View.VISIBLE);
  }
  
   mDbOpenHelper = new DbOpenHelper(this);
      mDbOpenHelper.open();
      startManagingCursor(mCursor);
 }     
  protected void onDestroy() {
      mDbOpenHelper.close();
      super.onDestroy();
     }
  
  
  
  public void onButton1Clicked(View v){
  
   mDbOpenHelper.insertColumn( editText1.getText().toString(),editText2.getText().toString().trim());
   Intent i = new Intent(Add_change.this, Number.class);
   i.putExtra("TabIndex", 1); 
   startActivity(i);
   


 }
  public void onButton2Clicked(View v){
  
   mDbOpenHelper.updateColumn(0, editText1.getText().toString(),editText2.getText().toString().trim()); 
   
 }
  private void doWhileCursorToArray(){
   
   mCursor = null;
   mCursor = mDbOpenHelper.getAllColumns();
   DLog.e(TAG, "COUNT = " + mCursor.getCount());
   
   while (mCursor.moveToNext()) {
          
    mInfoClass = new InfoClass(
      mCursor.getInt(mCursor.getColumnIndex("_id")),
      mCursor.getString(mCursor.getColumnIndex("name")),
      mCursor.getString(mCursor.getColumnIndex("phone"))
      );
    
    mInfoArray.add(mInfoClass);
   }
   
   mCursor.close();
  }
 }

버튼을 누르면 DB에 edit값을 불러와 저장하고 주소록 화면으로 넘어가는데 넘어가자마자 종료가 됩니다.

 

로그캣도 봤는데 nullpointerexception 이라고만 나오고 뭐가 문제인지 위치가 어딘지가 안나옵니다.

 

도와주세요

프리머니 (270 포인트) 님이 2015년 6월 26일 질문
뭐가 문제인지 : 널포인트가 문제라고 나오네요
위치 : 로그캣에 안나올리가 없을텐데요 널포인트가 발생하는 곳 위치 뜹니다
로그캣을 올리세요

1개의 답변

0 추천
mCursor 를 초기화하는 부분이 안보이네여

mCursor를 초기화하지 않고 사용하려고 해서 널포인트 나는듯 보입니다.

정확한건 로그캣에 있는 로그를 올리는게 더 빠릅니다.
Gradler (109,780 포인트) 님이 2015년 6월 26일 답변
...