1.Declare SwapListView In MainActivity.xml an Import Third Party Liabary.
<?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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.spider.listviewapplicationvolley.MainActivity"> <com.baoyz.swipemenulistview.SwipeMenuListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
2.Import Third Party Liabary.
compile 'com.android.volley:volley:1.0.0' compile "com.squareup.picasso:picasso:2.4.0" compile 'com.baoyz.swipemenulistview:library:1.3.0'
i am Using 3 third party liabary in the project .
1)Volley use for Json Parsing.
2)Picasso for image.
3)SwipeListView Item.
3.Create ItemList.xml According json response.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:id="@+id/image" android:text="Image"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/name" android:text="Name"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/worth" android:text="Worth"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/year" android:text="Year"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/source" android:text="Source"/> </LinearLayout> </LinearLayout>
4.Create MainActivity with Json Parse add item to getter setter.
public class MainActivity extends AppCompatActivity { ArrayList<String> arrname = new ArrayList<>(); ArrayList<String> arrimage = new ArrayList<>(); ArrayList<String> arrworth = new ArrayList<>(); ArrayList<String> arrinyear = new ArrayList<>(); ArrayList<String> arrsource = new ArrayList<>(); // ListView listview; private Context context; private static final String MEMBER_URL ="https://raw.githubusercontent.com/iCodersLab/Custom-ListView-Using-Volley/master/richman.json"; ArrayList<MemberList> listItems = new ArrayList<MemberList>(); MemberAdapter memberAdapter; private SwipeMenuListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context = MainActivity.this; listView=(SwipeMenuListView)findViewById(R.id.listview); try { StringRequest stringRequest = new StringRequest(Request.Method.GET, MEMBER_URL, new Response.Listener<String>() { @Override public void onResponse(String response) { getJsonResponse(response); System.out.println("RESPONSE" + response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(MainActivity.this, error.toString(), Toast.LENGTH_LONG).show(); } }); RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(stringRequest); } catch (Exception e) { } SwipeMenuCreator creator = new SwipeMenuCreator() { @Override public void create(SwipeMenu menu) { // create "open" item /*SwipeMenuItem openItem = new SwipeMenuItem( getApplicationContext()); // set item background openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9, 0xCE))); // set item width openItem.setWidth(dp2px(90)); // set item title openItem.setTitle("Open"); // set item title fontsize openItem.setTitleSize(18); // set item title font color openItem.setTitleColor(Color.WHITE); // add to menu menu.addMenuItem(openItem);*/ // create "delete" item SwipeMenuItem deleteItem = new SwipeMenuItem( getApplicationContext()); // set item background deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9, 0x3F, 0x25))); // set item width deleteItem.setWidth(dp2px(125)); // set a icon // deleteItem.setIcon(R.drawable.ic_delete); // add to menu menu.addMenuItem(deleteItem); } }; // set creator listView.setMenuCreator(creator); listView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(int position, SwipeMenu menu, int index) { Toast.makeText(context, "YES", Toast.LENGTH_SHORT).show(); listItems.remove(position); memberAdapter.notifyDataSetChanged(); return false; } }); memberAdapter = new MemberAdapter(context,listItems); listView.setAdapter(memberAdapter); //memberAdapter.notifyDataSetChanged(); } private void getJsonResponse(String response) { try { JSONArray jsonArray = new JSONArray(response); for (int i =0;i<jsonArray.length();i++) { String name = jsonArray.getJSONObject(i).getString("name").toString(); String image =jsonArray.getJSONObject(i).getString("image").toString(); String worth=jsonArray.getJSONObject(i).getString("worth").toString(); String InYear = jsonArray.getJSONObject(i).getString("InYear").toString(); String source = jsonArray.getJSONObject(i).getString("source").toString(); arrname.add(name); arrimage.add(image); arrinyear.add(InYear); arrworth.add(worth); arrsource.add(source); MemberList memberList = new MemberList(); memberList.setName(name); memberList.setImage(image); memberList.setInyear(InYear); memberList.setSource(source); memberList.setWorth(worth); listItems.add(memberList); } } catch (JSONException e) { e.printStackTrace(); } } private int dp2px(int dp) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics()); } }
Create Model Class.
public class MemberList { String name; String image; String worth; String inyear; String source; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public String getWorth() { return worth; } public void setWorth(String worth) { this.worth = worth; } public String getInyear() { return inyear; } public void setInyear(String inyear) { this.inyear = inyear; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } }
Create Adapter.
public class MemberAdapter extends BaseAdapter { ArrayList<MemberList> itemsList; Context context; DrawerItemHolder drawerHolder; public MemberAdapter(Context context,ArrayList<MemberList> itemsList) { this.itemsList = itemsList; this.context=context; } @Override public int getCount() { return itemsList.size(); } @Override public Object getItem(int i) { return itemsList.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { try { if (view == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); drawerHolder = new DrawerItemHolder(); view = inflater.inflate(R.layout.row_list, viewGroup, false); drawerHolder.name = (TextView) view.findViewById(R.id.name); drawerHolder.worth = (TextView) view.findViewById(R.id.worth); drawerHolder.imgIcon = (ImageView) view.findViewById(R.id.image); drawerHolder.inyear = (TextView) view.findViewById(R.id.year); drawerHolder.source = (TextView) view.findViewById(R.id.source); drawerHolder.name.setText(itemsList.get(i).getName()); drawerHolder.source.setText(itemsList.get(i).getSource()); drawerHolder.worth.setText(itemsList.get(i).getWorth()); drawerHolder.inyear.setText(itemsList.get(i).getInyear()); Picasso.with(context) .load(itemsList.get(i).getImage()) .resize(40, 40) // optional .into(drawerHolder.imgIcon); } } catch (Exception ex) { ex.printStackTrace(); } return view; } private class DrawerItemHolder { TextView name; TextView source; TextView inyear; TextView worth; ImageView imgIcon; } }
An Last Run The Code.