ListView With Delete Using Json

XML Files:-

listviewmain.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#4c0000"
    android:focusableInTouchMode="true"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/edtSearch"
            android:layout_width="0dp"
            android:layout_height="40dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:background="@drawable/edittextshape"
            android:drawablePadding="5dp"
            android:focusableInTouchMode="true"
            android:gravity="center_vertical"
            android:hint="SEARCH"
            android:inputType="text"
            android:paddingLeft="10dp"
            android:singleLine="true"
            android:textColor="#000"
            android:textColorHint="#000"
            android:textSize="14dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:background="#4c0000"
        android:gravity="center"
        android:orientation="horizontal" >

        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:cacheColorHint="@android:color/transparent"
            android:paddingTop="5dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:gravity="right"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/wrongappro"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="3dp"
            android:layout_marginRight="14dp"
            android:gravity="center"
            android:orientation="vertical" >

            <Button
                android:id="@+id/btnDone"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_gravity="center"
                android:background="@drawable/roundicon"
                android:gravity="center"
                android:text=""
                android:textColor="#ff0000"
                android:textSize="16dp"
                android:textStyle="bold" />
        </LinearLayout>
    </LinearLayout>


</LinearLayout>

listview_row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@null"
    android:gravity="center_vertical" >

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:orientation="vertical"
        android:padding="10dp" >

        <TextView
            android:id="@+id/txtItemName0"
            android:layout_width="1dp"
            android:layout_height="1dp"
            android:ellipsize="end"
            android:text="No data"
            android:textColor="#fff"
            android:textSize="13dp"
            android:visibility="invisible" />

        <TextView
            android:id="@+id/txtItemName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="end"
            android:text="No data"
            android:textColor="#fff"
            android:textSize="15dp"
            android:textStyle="bold" />
    </LinearLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="2dp"
        android:layout_marginTop="2dp"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/txtItemName2"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_weight="1"
            android:src="@drawable/deleteicon" />
    </RelativeLayout>


</LinearLayout>

JAVA Files:-

MainActivity.java

package com.parthiv.listviewwithdelete.in;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.StringRequest;

import android.annotation.TargetApi;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
private ListView listview;
     private ItemAdapter adapter;
     private EditText editsearch;
     private ArrayList<scheduleItemBean> arrlistItems = new ArrayList<scheduleItemBean>();
     int selectionCount=0;
     private Button btnDone;
    Typeface tf;
String fontPath = "fonts/Smoolthan Bold.otf";
ProgressDialog mProgressDialog;
String jsonResponse;
int totallength1=0;
LinearLayout wrongappro;
    int ij=0;
String remoid;

private SQLiteDatabase dataBase2;
DBHelper mHelper2;
String pttid;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.listviewmain);

  tf = Typeface.createFromAsset(getAssets(),fontPath);

   
       mHelper2=new DBHelper(this);
       this.deleteDatabase(mHelper2.DATABASE_NAME);
   
       wrongappro= (LinearLayout) findViewById(R.id.wrongappro);
       listview = (ListView) findViewById(R.id.list);
       editsearch = (EditText) findViewById(R.id.edtSearch);
       btnDone=(Button) findViewById(R.id.btnDone);
     
       btnDone.setTypeface(tf);
   
       new approveddoctor().execute("");
     
     
       editsearch.addTextChangedListener(new TextWatcher() {
       @Override
       public void afterTextChanged(Editable arg0) {
        String text = editsearch.getText().toString().toLowerCase();
        adapter.filter(text);
       }

       @Override
       public void beforeTextChanged(CharSequence arg0, int arg1,
         int arg2, int arg3) {
       }

       @Override
       public void onTextChanged(CharSequence arg0, int arg1, int arg2,
         int arg3) {
       }
      });
   
     
       btnDone.setOnClickListener(new OnClickListener() {

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



        mHelper2=new DBHelper(MainActivity.this);
        int profile_counts = mHelper2.getProfilesCount();
   
        if(profile_counts==0)
        {
       
      pttid="";
     
        }
        else
        {
       
      pttid="";
      dataBase2 = mHelper2.getWritableDatabase();

   Cursor mCursor = dataBase2.rawQuery("SELECT * FROM "
     + DBHelper.TABLE_NAME3, null);


   if (mCursor.moveToFirst()) {
    do {
   

String  userid = mCursor.getString(mCursor.getColumnIndex(DBHelper.KEY_PROID));

pttid+=userid+",";

    } while (mCursor.moveToNext());
   }

}
     
          Context context=getApplicationContext();
LayoutInflater inflater=getLayoutInflater();
View customToastroot =inflater.inflate(R.layout.fillallfield, null);
    TextView validate=(TextView)customToastroot.findViewById(R.id.textView1);    
validate.setText(""+pttid);
validate.setTypeface(tf);
validate.setTextColor(Color.WHITE);
Toast customtoast=new Toast(context);
customtoast.setView(customToastroot);
customtoast.setGravity(Gravity.BOTTOM | Gravity.BOTTOM,0, 0);
customtoast.setDuration(1000);
customtoast.show();
   
}
});
 
       }

public class ItemAdapter extends BaseAdapter
{
       private Context mContext;
       private LayoutInflater inflater;
       public List<scheduleItemBean> arraylistData = null;
       private ArrayList<scheduleItemBean> arraylist;

       public ItemAdapter(Context context, List<scheduleItemBean> listbean)
       {
              mContext = context;
              this.arraylistData = listbean;
              inflater = LayoutInflater.from(mContext);

              this.arraylist = new ArrayList<scheduleItemBean>();
              this.arraylist.addAll(listbean);

       }

       public class ViewHolder
       {
              TextView txtItemName;
              ImageView txtItemName2;
              TextView txtItemName0;
           
       }

       @Override
       public int getCount()
       {
              return arraylistData.size();
       }

       @Override
       public scheduleItemBean getItem(int position)
       {
              return arraylistData.get(position);
       }

       @Override
       public long getItemId(int position)
       {
              return position;
       }   

       @TargetApi(Build.VERSION_CODES.ECLAIR) public View getView(final int position, View view, ViewGroup parent)
       {
              final ViewHolder holder;
              if (view == null)
              {
                     holder = new ViewHolder();
                     view = inflater.inflate(R.layout.listview_row, null);
                     holder.txtItemName = (TextView) view.findViewById(R.id.txtItemName);
                     holder.txtItemName.setTypeface(tf);
                     holder.txtItemName2 = (ImageView) view.findViewById(R.id.txtItemName2);
                   
                     holder.txtItemName0= (TextView) view.findViewById(R.id.txtItemName0);
                     holder.txtItemName0.setTypeface(tf);
                   
                     view.setTag(holder);

              }
              else
              {
                     holder = (ViewHolder) view.getTag();
              }

              // Set data to view=================================================
              try
              {
             
             
                     final scheduleItemBean bean = arraylistData.get(position);

                 
                     holder.txtItemName.setText(bean.getItemName());
                   
                     holder.txtItemName0.setText(bean.getItemName2());
                 
                   
                   
                     holder.txtItemName2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
scheduleItemBean beans = arraylistData.get(position);

remoid=""+beans.getItemName2();

mHelper2 = new DBHelper(
            MainActivity.this);

dataBase2.delete(
          DBHelper.TABLE_NAME3,
          DBHelper.KEY_PROID+ "='"
            + bean.getItemName2()+"'", null);
 
 
 
  arrlistItems.clear();
dataBase2 = mHelper2.getWritableDatabase();

   Cursor mCursor = dataBase2.rawQuery("SELECT * FROM "
     + DBHelper.TABLE_NAME3, null);


   if (mCursor.moveToFirst()) {
    do {
   

String  userid = mCursor.getString(mCursor.getColumnIndex(DBHelper.KEY_PROID));
String  androidverson= mCursor.getString(mCursor.getColumnIndex(DBHelper.KEY_PRONAME));

scheduleItemBean bean=new scheduleItemBean();



             bean.setItemName(androidverson);
             bean.setItemName2(userid);
          arrlistItems.add(bean);

    } while (mCursor.moveToNext());
   }


mProgressDialog.dismiss();

adapter = new ItemAdapter(MainActivity.this, arrlistItems);
adapter.notifyDataSetChanged();
         listview.setAdapter(adapter);
           
           
           
           
}
});
                   
             
              }
              catch (Exception e)
              {
                     e.printStackTrace();
              }

              return view;
       }

       // Filter Class
       public void filter(String charText)
       {
              charText = charText.toLowerCase();
              arraylistData.clear();
              if (charText.length() == 0)
              {
                     arraylistData.addAll(arraylist);
                   
              }
              else
              {
                     for (scheduleItemBean contact : arraylist)
                     {
                           if (contact.getItemName().toLowerCase().contains(charText))
                           {
                                  arraylistData.add(contact);
                               
                           }
                     }
              }
              notifyDataSetChanged();
       }

}

class approveddoctor extends AsyncTask<String, String, String> {
@SuppressWarnings("deprecation")
protected void onPreExecute() {
super.onPreExecute();

mProgressDialog = new ProgressDialog(MainActivity.this);
mProgressDialog.setMessage("Please wait.....");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setCancelable(false);
mProgressDialog.show();


}

protected String doInBackground(String... params) {
String urlJsonArry1;




urlJsonArry1 = "http://androidblog.esy.es/ImageJsonData.php";


try {
JsonArrayRequest req = new JsonArrayRequest(urlJsonArry1,
new Response.Listener<JSONArray>() {
public void onResponse(JSONArray response) {
try
{
jsonResponse = "";
totallength1=response.length();


for (int i = 0; i < response.length(); i++)
{

JSONObject person = (JSONObject) response
.get(i);

mHelper2 = new DBHelper(
            MainActivity.this);

          try {
           dataBase2 = mHelper2.getWritableDatabase();
          } catch (Exception e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
          }
          ContentValues values = new ContentValues();

          values.put(DBHelper.KEY_PROID,person.getString("id"));
          values.put(DBHelper.KEY_PRONAME,person.getString("image_title"));
       

          dataBase2.insert(DBHelper.TABLE_NAME3,null, values);


     
}

if(totallength1==0)
{

Context context=getApplicationContext();
LayoutInflater inflater=getLayoutInflater();
View customToastroot =inflater.inflate(R.layout.fillallfield, null);
    TextView validate=(TextView)customToastroot.findViewById(R.id.textView1);    
validate.setText("No Versions has been found...");
validate.setTypeface(tf);
validate.setTextColor(Color.WHITE);
Toast customtoast=new Toast(context);
customtoast.setView(customToastroot);
customtoast.setGravity(Gravity.BOTTOM | Gravity.BOTTOM,0, 0);
customtoast.setDuration(1000);
customtoast.show();
mProgressDialog.dismiss();


}
else
{

ShowAllContent();
}
}
   catch (JSONException e)
       {

   Context context=getApplicationContext();
LayoutInflater inflater=getLayoutInflater();
View customToastroot =inflater.inflate(R.layout.fillallfield, null);
    TextView validate=(TextView)customToastroot.findViewById(R.id.textView1);    
validate.setText("Problem with internet...");
validate.setTypeface(tf);
validate.setTextColor(Color.WHITE);
Toast customtoast=new Toast(context);
customtoast.setView(customToastroot);
customtoast.setGravity(Gravity.BOTTOM | Gravity.BOTTOM,0, 0);
customtoast.setDuration(1000);
customtoast.show();
mProgressDialog.dismiss();
finish();

}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {

Context context=getApplicationContext();
LayoutInflater inflater=getLayoutInflater();
View customToastroot =inflater.inflate(R.layout.fillallfield, null);
    TextView validate=(TextView)customToastroot.findViewById(R.id.textView1);    
validate.setText("Problem with internet...");
validate.setTypeface(tf);
validate.setTextColor(Color.WHITE);
Toast customtoast=new Toast(context);
customtoast.setView(customToastroot);
customtoast.setGravity(Gravity.BOTTOM | Gravity.BOTTOM,0, 0);
customtoast.setDuration(1000);
customtoast.show();
mProgressDialog.dismiss();
finish();

}
});

AppController.getInstance().addToRequestQueue(req);
}
catch (Exception e)
{
System.out.println("Exception : " + e.getMessage());
}

return null;
}



private void ShowAllContent()
{


arrlistItems.clear();
dataBase2 = mHelper2.getWritableDatabase();

   Cursor mCursor = dataBase2.rawQuery("SELECT * FROM "
     + DBHelper.TABLE_NAME3, null);


   if (mCursor.moveToFirst()) {
    do {
   

String  userid = mCursor.getString(mCursor.getColumnIndex(DBHelper.KEY_PROID));
String  androidverson= mCursor.getString(mCursor.getColumnIndex(DBHelper.KEY_PRONAME));

scheduleItemBean bean=new scheduleItemBean();



             bean.setItemName(androidverson);
             bean.setItemName2(userid);
             arrlistItems.add(bean);

    } while (mCursor.moveToNext());
   }

         
mProgressDialog.dismiss();

adapter = new ItemAdapter(MainActivity.this, arrlistItems);
adapter.notifyDataSetChanged();
    listview.setAdapter(adapter);
     
}

}


}

DBHelper.java

package com.parthiv.listviewwithdelete.in;

import java.util.ArrayList;

import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper {
 static String DATABASE_NAME = "dbnameddddmmyy";
 public static final String TABLE_NAME3 = "tabmmddddlnameyy";
 public static final String KEY_ID = "id";
 public static final String KEY_PROID = "proid";
 public static final String KEY_PRONAME = "proname";
 public static final String KEY_PRONAME1 = "proname2";


 public DBHelper(Context context) {
  super(context, DATABASE_NAME, null, 1);

 }

 @Override
 public void onCreate(SQLiteDatabase db) {
  String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME3 + " (" + KEY_ID
    + " INTEGER PRIMARY KEY, " + KEY_PROID+ " TEXT,"
    + KEY_PRONAME + " TEXT,"
    + KEY_PRONAME1 + " TEXT)";

  db.execSQL(CREATE_TABLE);

 }

 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME3);

  onCreate(db);

 }
   public int getProfilesCount() {
         String countQuery = "SELECT  * FROM " + TABLE_NAME3;
         SQLiteDatabase db = this.getReadableDatabase();
         Cursor cursor = db.rawQuery(countQuery, null);
         int cnt = cursor.getCount();
         cursor.close();
         return cnt;
     }



}

scheduleItemBean.java

package com.parthiv.listviewwithdelete.in;

public class scheduleItemBean {
public String ItemName;

public String ItemName2;

public String getItemName() {
return ItemName;
}

public String getItemName2() {
return ItemName2;
}

public void setItemName(String displayName) {
this.ItemName = displayName;
}

public void setItemName2(String displayName2) {
this.ItemName2 = displayName2;
}


}

ScreenShots:-












No comments:

Post a Comment

back to top