• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Record Retrieval Problem

A

Android Question

Guest
Let COnsider this logcat


01-13 15:24:11.634: E/AndroidRuntime(3781): FATAL EXCEPTION: main
01-13 15:24:11.634: E/AndroidRuntime(3781): java.lang.NullPointerException
01-13 15:24:11.634: E/AndroidRuntime(3781): at android.widget.Toast.<init>(Toast.java:92)
01-13 15:24:11.634: E/AndroidRuntime(3781): at android.widget.Toast.makeText(Toast.java:238)
01-13 15:24:11.634: E/AndroidRuntime(3781): at com.ProgramingTutorials.sqlite.Database.getCandidate(Database.java:96)
01-13 15:24:11.634: E/AndroidRuntime(3781): at com.ProgramingTutorials.sqlite.ViewCandidate$1.onClick(ViewCandidate.java:48)
01-13 15:24:11.634: E/AndroidRuntime(3781): at android.view.View.performClick(View.java:4091)
01-13 15:24:11.634: E/AndroidRuntime(3781): at android.view.View$PerformClick.run(View.java:17072)
01-13 15:24:11.634: E/AndroidRuntime(3781): at android.os.Handler.handleCallback(Handler.java:615)
01-13 15:24:11.634: E/AndroidRuntime(3781): at android.os.Handler.dispatchMessage(Handler.java:92)
01-13 15:24:11.634: E/AndroidRuntime(3781): at android.os.Looper.loop(Looper.java:153)
01-13 15:24:11.634: E/AndroidRuntime(3781): at android.app.ActivityThread.main(ActivityThread.java:5086)
01-13 15:24:11.634: E/AndroidRuntime(3781): at java.lang.reflect.Method.invokeNative(Native Method)
01-13 15:24:11.634: E/AndroidRuntime(3781): at java.lang.reflect.Method.invoke(Method.java:511)
01-13 15:24:11.634: E/AndroidRuntime(3781): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
01-13 15:24:11.634: E/AndroidRuntime(3781): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
01-13 15:24:11.634: E/AndroidRuntime(3781): at dalvik.system.NativeStart.main(Native Method)

/////////////////////////////////////////////////////////

Here is the Another class who control SQLite

package com.ProgramingTutorials.sqlite;


import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;

public class Database extends SQLiteOpenHelper {


private static final String KEY_ID="id";
private static final String KEY_NAME="name";
private static final String KEY_ADDRESS="address";
private static final String TABLE_NAME="Candidate";
private static final String DATABASE_NAME="odesk";
private SQLiteDatabase db;
Context context;


public Database(Context context) {
super(context, DATABASE_NAME, null, 1);
this.context=context;
}


public void close(){
db.close();
}

public boolean addCandidate(Candidate c) {
db=this.getWritableDatabase();


try{

ContentValues value=new ContentValues();
value.put(KEY_ID, c.getId());
value.put(KEY_NAME, c.getName());
value.put(KEY_ADDRESS, c.getAddress());

if(db.insert(TABLE_NAME, null, value)!=-1){
Log.d("Insert", "Data Inserted");
Toast.makeText(context, "Data is Inserted", Toast.LENGTH_SHORT).show();
return true;

}
else{
return false;
}
}
catch(Exception e){
Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
return false;
}



}


//Get the record of Candidate from SQLITE

public Candidate getCandidate(int i){

try{
db=this.getReadableDatabase();


String sql="select * from Candidate where id='"+i+"' ";

//Cursor cursor=db.rawQuery(sql, null);
Cursor cursor=db.query(TABLE_NAME, new String[]{KEY_ID,KEY_NAME,KEY_ADDRESS}, KEY_ID+ "=" +i, null, null, null, null);
Candidate c;
if(cursor!=null){
cursor.moveToFirst();
c=new Candidate();
c.setId(cursor.getInt(0));
c.setName(cursor.getString(1));
c.setAddress(cursor.getString(2));
db.close();
return c;
}
else{
db.close();
return null;
}
}catch(Exception e){
Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
return null;
}
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table Candidate (id int primary key,name varchar(255),address varchar(255))");
Log.d("CREATED", "DATABASE Created");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}


}



///////////////////////////////////////////////////////////////////////////////
here is the Candidate CClass

package com.ProgramingTutorials.sqlite;


import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;

public class Database extends SQLiteOpenHelper {


private static final String KEY_ID="id";
private static final String KEY_NAME="name";
private static final String KEY_ADDRESS="address";
private static final String TABLE_NAME="Candidate";
private static final String DATABASE_NAME="odesk";
private SQLiteDatabase db;
Context context;


public Database(Context context) {
super(context, DATABASE_NAME, null, 1);
this.context=context;
}


public void close(){
db.close();
}

public boolean addCandidate(Candidate c) {
db=this.getWritableDatabase();


try{

ContentValues value=new ContentValues();
value.put(KEY_ID, c.getId());
value.put(KEY_NAME, c.getName());
value.put(KEY_ADDRESS, c.getAddress());

if(db.insert(TABLE_NAME, null, value)!=-1){
Log.d("Insert", "Data Inserted");
Toast.makeText(context, "Data is Inserted", Toast.LENGTH_SHORT).show();
return true;

}
else{
return false;
}
}
catch(Exception e){
Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
return false;
}



}


//Get the record of Candidate from SQLITE

public Candidate getCandidate(int i){

try{
db=this.getReadableDatabase();


String sql="select * from Candidate where id='"+i+"' ";

//Cursor cursor=db.rawQuery(sql, null);
Cursor cursor=db.query(TABLE_NAME, new String[]{KEY_ID,KEY_NAME,KEY_ADDRESS}, KEY_ID+ "=" +i, null, null, null, null);
Candidate c;
if(cursor!=null){
cursor.moveToFirst();
c=new Candidate();
c.setId(cursor.getInt(0));
c.setName(cursor.getString(1));
c.setAddress(cursor.getString(2));
db.close();
return c;
}
else{
db.close();
return null;
}
}catch(Exception e){
Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
return null;
}
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table Candidate (id int primary key,name varchar(255),address varchar(255))");
Log.d("CREATED", "DATABASE Created");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}


}
/////////////////////////////////////////////////////////////////////////////


Here is the ViewCandidate activityclass for get the record

package com.ProgramingTutorials.sqlite;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract.Data;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class ViewCandidate extends Activity {

Button searchButton;
TextView idTextView;
TextView nameTextView;
TextView addressTextView;
EditText candidateEditText;
Database db=new Database(getBaseContext());


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



this.searchButton=(Button) findViewById(R.id.buttonSearchByName);
this.candidateEditText=(EditText) findViewById(R.id.editTextSearchByName);
this.idTextView=(TextView) findViewById(R.id.editTextID);
this.nameTextView=(TextView) findViewById(R.id.textViewCandidateName);
this.addressTextView=(TextView) findViewById(R.id.textViewAddress);


this.searchButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {


String val=candidateEditText.getText().toString();

int id=Integer.parseInt(val);
Candidate c=db.getCandidate(id);
Toast.makeText(getApplicationContext(), val, Toast.LENGTH_SHORT).show();

if(c!=null){

idTextView.setText(""+c.getId());
nameTextView.setText(""+c.getName());
addressTextView.setText(""+c.getAddress());}


}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.view_candidate, menu);
return true;
}

}
////////////////////////////////
Kindly Suggest me what is the problem...
Whenever I try get the record from database the my application has closed...
 

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones