Thursday, 12 March 2015

Android simple sqlite database tutorial without using open helper.

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.testdemo.MainActivity"
    tools:ignore="MergeRootFrame" >

    <EditText
        android:id="@+id/edname"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName" />

    <Button
        android:id="@+id/btnadd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

 <!__    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

    </ListView>
__!>
</LinearLayout>


MainActivity.java

public class MainActivity extends Activity {

EditText ed1;
Button btnadd;
ListView lv;

SQLiteDatabase db1=null;
private static String dbName="employees.db";
List<String>s;
Cursor cursor;

private Custome_Page custome_adpter;
private ArrayList<String> listname;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1=(EditText)findViewById(R.id.edname);
  btnadd=(Button)findViewById(R.id.btnadd);
 
  s=new ArrayList<String>();
  lv=(ListView)findViewById(R.id.listView1);
 
  db1=openOrCreateDatabase(dbName, Context.MODE_PRIVATE, null);
  db1.execSQL("Create Table if not exists company(name text);");
 
  custome_adpter =new Custome_Page(MainActivity.this,listname);
 
  btnadd.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

db1.execSQL("insert into company(name) values('"+ed1.getText().toString()+"');");
//ContentValues contentValues=new ContentValues();
//contentValues.put("name", ed1.getText().toString());
//db1.insert(dbName, null, contentValues);

}
});
 
  listname=new ArrayList<String>();
  cursor=db1.rawQuery("select * from company", null);
  while(cursor.moveToNext())
  {
  String Name=cursor.getString(cursor.getColumnIndex("name")).toString();
  //s.add(Name);
  listname.add(Name);
  }
  //ArrayAdapter<String> ad= new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1,s);
  //lv.setAdapter(ad);
  custome_adpter =new Custome_Page(MainActivity.this,listname);
  lv.setAdapter(custome_adpter);
}

}

custome_page.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context="com.example.testdemo.MainActivity"
    tools:ignore="MergeRootFrame" >

    <EditText
        android:id="@+id/edtext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName" />

    <Button
        android:id="@+id/btndel"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Delete" />

</LinearLayout>

Custome_Page.java

public class Custome_Page extends BaseAdapter {
private ArrayList<String> listName;
private Activity activity;
Button delete;
Cursor c;
SQLiteDatabase db1=null;
private static String dbName="employees.db";
String name;
Context context;
public Custome_Page(Activity activity,ArrayList<String>listname)
{
super();
this.activity=activity;
this.listName=listname;
}

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

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

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
public static class ViewHolder{
public EditText edName;
public Button btnDelete;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder;
LayoutInflater inflater=activity.getLayoutInflater();
if(convertView==null){
viewHolder=new ViewHolder();
convertView=inflater.inflate(R.layout.custome_page, null);
viewHolder.edName=(EditText)convertView.findViewById(R.id.edtext);
viewHolder.btnDelete=(Button)convertView.findViewById(R.id.btndel);
convertView.setTag(viewHolder);
}
else{
viewHolder=(ViewHolder)convertView.getTag();
}
viewHolder.edName.setText(listName.get(position));
viewHolder.btnDelete.setTag(position);
viewHolder.btnDelete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
db1=activity.openOrCreateDatabase(dbName,Context.MODE_PRIVATE, null); 
Log.d("name",listName.get(position).toString());
listName.remove(position);
}
});
return convertView;
}

}