mCursor = dbhelper.getMatchPatt(password); //password가 DB의 patt column 중에 있다면 해당 row의 num을 받아서 전화걸기 if (mCursor.getCount() > 0){ pnum = mCursor.getString(2);
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+pnum)); startActivity(intent);
cursor로 입력받은 문자열이 있는 row를 찾아 그 row의 다른 data를 String으로 받으려 하는데 마지막줄에서 오류가 뜹니다.
또 이것저것 예제를 찾아가면서 DB 생성자 관련해서 짜봤지만
package com.example.ksw.lockscreenview; import android.app.Activity; import android.content.Intent; import android.graphics.Matrix; import android.os.Bundle; import android.database.SQLException; import android.database.Cursor; import android.util.Log; import android.view.View; import android.view.View.OnTouchListener; import android.widget.AdapterView; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; import java.util.logging.Handler; import android.content.SharedPreferences; import static com.example.ksw.lockscreenview.R.id.tnum; public class QDialList extends Activity { private static final String TAG = "QDataBase"; private DBHelper dbHelper; private Cursor mCursor; private InfoClass mInfoClass; private ArrayList<InfoClass> mInfoArr; private CustomAdapter mAdapter; SharedPreferences prefs; //private static final String[] Temp1 = {"a","b","c"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.qdial_list); dbHelper = new DBHelper(this, "Quick.db", null, 1); prefs = getSharedPreferences("Pref2", MODE_PRIVATE); dbHelper.open();
여기서 계속 dbHelper.open();에서 null pointer exception에서 막힙니다.
해당 구문은 아래와 같습니다. 아래의 DBHelper open(), db = dbhelper.getWritableDatabase(); 입니다.
예제들과 비교해서 딱히 차이가 있어보이지는 않는데...
public class DBHelper extends SQLiteOpenHelper
{
private static final String DATABASE_NAME = "Quick.db";
private static final int DATABASE_VERSION = 1;
private SQLiteDatabase db;
private DBHelper dbhelper;
private Context mCtx;
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
{
super(context, name, factory, version);
}
//Db를 여는 메소드 public DBHelper open() { dbhelper = new DBHelper(mCtx, DATABASE_NAME, null, DATABASE_VERSION); db = dbhelper.getWritableDatabase(); return this; }
뭐 자바니 안드로이드 앱이니 아는게 있어야지 원;;