Click here to Skip to main content
15,883,606 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
hi friends
i tried to design a simple a sqlite related apps .but when i try to inflate my data in listview using view holder.it's getting error.i cannt understand how to debug it. please help me
my code is---
1- code for SQLiteOpenHelper
[code]public class DataHelper extends SQLiteOpenHelper {
public static String DATABASE="kuldb";
public static String DB_TABLE="friends";
public static String COL_id="id";
public static String COL_NAME="name";
public static String COL_ADD="address";
public static String COL_PH="call";

ArrayList<friendmodel>cartlist=new ArrayList<friendmodel>();
Context c;
public DataHelper(Context c){
super(c,DATABASE,null,1);
}
public void onCreate(SQLiteDatabase db){
db.execSQL("create table friends(id integer primary key autoincrement,name text,address text,call text)");
}
public void onUpgrade(SQLiteDatabase db,int oldv,int newv){
db.execSQL("drop table if exist "+DB_TABLE);
this.onCreate(db);
}

public void putfriends(FriendModel fritype){
SQLiteDatabase sd=this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put("name", fritype.friname);
cv.put("address", fritype.friadd);
cv.put("call", fritype.friph);
sd.insert("friends", null, cv);
sd.close();
}

public void updatefri(FriendModel frilist){
SQLiteDatabase sd=this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put("name", frilist.friname);
cv.put("address", frilist.friadd);
cv.put("call", frilist.friph);
sd.update("friends", cv, "name="+ frilist.friname, null);
sd.close();
}
public void emptyfriends(){
try{
SQLiteDatabase sd=this.getWritableDatabase();
sd.execSQL("delete from friends");
sd.close();
}catch(Exception e){
e.printStackTrace();
}
}
public void removefriend(String fname,String fadd,String fph){
try{
SQLiteDatabase sd=this.getWritableDatabase();
String[]arg={fname};
sd.delete("friends", "name=?", arg);
sd.close();
}catch(Exception e){
e.printStackTrace();
}
}

public ArrayList<friendmodel>getallfriends(){
cartlist.clear();
SQLiteDatabase sd=this.getWritableDatabase();
Cursor c=sd.rawQuery("select * from friends", null);
if(c.getCount()!=0){
if(c.moveToFirst()){
do{
FriendModel type=new FriendModel();
type.friname=c.getString(c.getColumnIndex("name"));
type.friadd=c.getString(c.getColumnIndex("address"));
type.friph=c.getString(c.getColumnIndex("call"));
cartlist.add(type);
}while(c.moveToNext());
}
}
c.close();
sd.close();
return cartlist;

}
}
[/code]
2- code for MainActivity
[code]public class MainActivity extends Activity{
EditText fname,fadd,fcall;
Button fsave,fview;
FriendModel fm;
DataHelper help;
public void onCreate(Bundle b){
super.onCreate(b);
setContentView(R.layout.main);
fname=(EditText)findViewById(R.id.addname);
fadd=(EditText)findViewById(R.id.addcity);
fcall=(EditText)findViewById(R.id.addph);
fsave=(Button)findViewById(R.id.savedata);
fview=(Button)findViewById(R.id.viewdata);

fsave.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(fname.getText().toString().equals("")
||fadd.getText().toString().equals("")||fcall.getText().toString().equals("")){
Toast.makeText(MainActivity.this, "please Fill All data fields", Toast.LENGTH_LONG).show();
}
else{
help=new DataHelper(getApplicationContext());
help.getWritableDatabase();
fm=new FriendModel();
fm.friname=fname.getText().toString();
fm.friadd=fadd.getText().toString();
fm.friph=fcall.getText().toString();
help.putfriends(fm);
Toast.makeText(MainActivity.this, "Records Added sucessfully", Toast.LENGTH_LONG).show();
fname.setText("");
fadd.setText("");
fcall.setText("");
}


}
});

fview.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(getApplicationContext(),ViewFriends.class);
startActivity(i);
}
});
}

}
[/code]
code for FriendModel class
[code]public class FriendModel {
public String friname="";
public String friadd="";
public String friph="";

public String getfriname(){
return friname;
}
public void setfriname(String friname){
this.friname=friname;
}
public String getfriadd(){
return friadd;
}
public void setfriadd(String friadd){
this.friadd=friadd;
}
public String getfriph(){
return friph;
}
public void setfriph(String friph){
this.friph=friph;
}

}

[/code]
code for final ViewFriends classs--
[code]public class ViewFriends extends Activity{
TextView totalfans;
ListView listview;
DataHelper help;
ArrayList<friendmodel>friendlist=new ArrayList<friendmodel>();

public void onCreate(Bundle b){
super.onCreate(b);
setContentView(R.layout.view_record);
totalfans=(TextView)findViewById(R.id.totalrecords);
listview=(ListView)findViewById(R.id.listview);
}
public void onResume(){
super.onResume();
friendlist.clear();
help=new DataHelper(getApplicationContext());
help.getWritableDatabase();
ArrayList<friendmodel>fanlist=help.getallfriends();
for(int i=0;i<fanlist.size();i++){>
String tfname=fanlist.get(i).getfriname();
String tfadd=fanlist.get(i).getfriadd();
String tfph=fanlist.get(i).getfriph();

FriendModel fan=new FriendModel();
fan.setfriname(tfname);
fan.setfriadd(tfadd);
fan.setfriph(tfph);
friendlist.add(fan);
}
totalfans.setText("Total Records Found: "+friendlist.size());
listview.setAdapter(new ListAdapter(this));
help.close();

}
private class ListAdapter extends BaseAdapter{
LayoutInflater inflater;
ViewHolder viewholder;

public ListAdapter(Context c){
inflater=LayoutInflater.from(c);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return friendlist.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView==null){
convertView=inflater.inflate(R.layout.item_record, null);
ViewHolder viewholder=new ViewHolder();
viewholder.tfriname=(TextView)convertView.findViewById(R.id.namedb);
viewholder.tfriadd=(TextView)convertView.findViewById(R.id.addressdb);
viewholder.tfriph=(TextView)convertView.findViewById(R.id.calldb);
convertView.setTag(viewholder);
}
else{
viewholder=(ViewHolder)convertView.getTag();
}
viewholder.tfriname.setText(friendlist.get(position).getfriname());
viewholder.tfriadd.setText(friendlist.get(position).getfriadd().trim());
viewholder.tfriph.setText(friendlist.get(position).getfriph().trim());
final int temp=position;

(convertView.findViewById(R.id.update)).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String updatename=friendlist.get(temp).getfriname();
String updateadd=friendlist.get(temp).getfriadd();
String updateph=friendlist.get(temp).getfriph();
Intent in=new Intent(ViewFriends.this,Update.class);
in.putExtra("fname", updatename);
in.putExtra("fadd", updateadd);
in.putExtra("fph", updateph);
startActivity(in);

}
});
(convertView.findViewById(R.id.delete)).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder adb=new AlertDialog.Builder(ViewFriends.this);
adb.setCancelable(true);
adb.setMessage("Are you Sure about Delete Record???");
adb.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
help.removefriend(friendlist.get(temp).getfriname().trim()
, friendlist.get(temp).getfriadd().trim(),friendlist.get(temp).getfriph().trim());
ViewFriends.this.onResume();
Toast.makeText(ViewFriends.this, "Record Deleted Sucessfully", Toast.LENGTH_LONG).show();

}
});
adb.setNegativeButton("No", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub

}
});
adb.show();

}
});
return convertView;
}

}
private class ViewHolder{
TextView tfriname;
TextView tfriadd;
TextView tfriph;
}

}
[/code]
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900