Libraries
implementation 'com.android.support:cardview-v7:27.+'implementation 'com.android.support:recyclerview-v7:27.+'implementation 'com.android.volley:volley:1.1.0'
permission
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission>MainActivity.javapackage com.app.android.peppty.hemanthtestpeppty; import android.app.ProgressDialog; import android.content.ContentResolver; import android.database.Cursor; import android.os.AsyncTask; import android.provider.ContactsContract; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; import android.widget.Toast; import com.android.volley.AuthFailureError; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; public class MainActivity extends AppCompatActivity { RecyclerView recycler; Button submit; ContentResolver contentResolver; Cursor cursor; List<CommonBean> CommonBeanList = new ArrayList<>(); RecyclerAdapter recyclerAdapter; List<CommonBean> Bean; List<Integer> removaItems = new ArrayList<>(); private ProgressDialog mprocessingdialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recycler = (RecyclerView) findViewById(R.id.recycler); submit = (Button) findViewById(R.id.submit); contentResolver = getContentResolver(); cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); if (cursor != null) { while (cursor.moveToNext()) { int FirstName = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); int LastName = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); CommonBean commonBean = new CommonBean(); commonBean.setFirstName(cursor.getString(FirstName)); commonBean.setLastName(cursor.getString(LastName) + ""); CommonBeanList.add(commonBean); } cursor.close(); recyclerAdapter = new RecyclerAdapter(); Bean = new ArrayList<>(); Bean.addAll(CommonBeanList); recycler.setLayoutManager(new LinearLayoutManager(this)); recycler.setHasFixedSize(true); recycler.setAdapter(recyclerAdapter); } submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { for (final int a:removaItems) { Log.e("rlog", "rlog: "+CommonBeanList.get(a).getFirstName()+ " : "+CommonBeanList.get(a).getLastName() ); // http://184.72.145.108/test-con.php Toast.makeText(MainActivity.this, CommonBeanList.get(a).getFirstName()+ " : "+CommonBeanList.get(a).getLastName(), Toast.LENGTH_SHORT).show(); new MainActivity.GetFlagsAsync().execute(); } } }); } class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ContactsViewHolder> { @NonNull @Override public ContactsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { LayoutInflater layoutInflater = (LayoutInflater) MainActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE); View view = layoutInflater.inflate(R.layout.item, parent, false); ContactsViewHolder contactsViewHolder = new ContactsViewHolder(view); return contactsViewHolder; } @Override public void onBindViewHolder(@NonNull ContactsViewHolder holder, final int position) { if (CommonBeanList != null) { holder.Firstname.setText(CommonBeanList.get(position).getFirstName()); holder.Lastname.setText(CommonBeanList.get(position).getLastName()); holder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { if (!removaItems.contains(position)) { removaItems.add(position); } } else { } Log.e("rlog", removaItems.toString()); } }); } } @Override public int getItemCount() { return CommonBeanList.size(); } class ContactsViewHolder extends RecyclerView.ViewHolder { TextView Firstname, Lastname; CheckBox checkbox; public ContactsViewHolder(View itemView) { super(itemView); Firstname = itemView.findViewById(R.id.Firstname); Lastname = itemView.findViewById(R.id.Lastname); checkbox = itemView.findViewById(R.id.checkbox); } } } private class GetFlagsAsync extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); mprocessingdialog = new ProgressDialog(MainActivity.this); mprocessingdialog.setTitle("Please Wait.."); mprocessingdialog.setMessage("Loading"); mprocessingdialog.setIndeterminate(true); mprocessingdialog.setCancelable(false); mprocessingdialog.show(); } @Override protected Void doInBackground(Void... arg0) { Map<String, String> params = new HashMap<>(); try{ JSONArray myData=new JSONArray(); for (final int a:removaItems) { JSONObject myObj=new JSONObject(); myObj.put("name", CommonBeanList.get(a).getFirstName()); myObj.put("last_name", CommonBeanList.get(a).getLastName()); myData.put(myObj); } params.put("data", myData.toString()); }catch (Exception e){ } // JSONObject params = new JSONObject(); // try { // // for (final int a:removaItems) // { // params.put("data", CommonBeanList.get(a).getFirstName()); // } //// params.put("data", CommonBeanList.getFirstName()+ " : "+CommonBeanList.get(a).getLastName()); // // // } catch (JSONException e) { // e.printStackTrace(); // } Log.e("rlog" ,params.toString()); StringRequest stringRequest = new StringRequest(Request.Method.POST, "http://184.72.145.108/test-con.php", new Response.Listener<String>() { @Override public void onResponse(String response) { Log.e("rlog", "response" + response); try { } catch (Exception e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }); RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this); requestQueue.add(stringRequest); return null; } @Override protected void onPostExecute(Void result) { // TODO Auto-generated method stub super.onPostExecute(result); new Timer().schedule(new TimerTask() { @Override public void run() { mprocessingdialog.dismiss(); } }, 1000); } } }
CommonBean.javapackage com.app.android.peppty.hemanthtestpeppty; public class CommonBean { String FirstName,LastName; public String getFirstName() { return FirstName; } public void setFirstName(String firstName) { FirstName = firstName; } public String getLastName() { return LastName; } public void setLastName(String lastName) { LastName = lastName; } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" android:layout_margin="15dp"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <Button android:id="@+id/submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Submit" /> </LinearLayout> </LinearLayout>
item.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" app:cardCornerRadius="15dp"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <CheckBox android:id="@+id/checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dp" /> <TextView android:id="@+id/Firstname" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@id/checkbox" android:gravity="center" android:text="First Name" android:textSize="20dp" /> <TextView android:id="@+id/Lastname" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/Firstname" android:layout_margin="5dp" android:gravity="center" android:text="Last Name" android:textSize="18dp" /> </RelativeLayout> </android.support.v7.widget.CardView> </LinearLayout>