mardi 15 décembre 2015

Select All By One Checkbox and Get the item of Selected checkboxes with Intent

I am new to Android. I have a CheckBox in My MainActivity and checkbox in the listview for selecting the items. Firstly I want to select all the checkbox of the Listview from Checkbox in the MainActivity. Secondly I am getting EmailId of the users in the Listview which I want them in my Gmail for sending the message. Thirdly I should have the option of sending the message to selected ones from the Listview. I am Posting My Code. I Hope my problem will be solved here.

User_Info.java Class:

public class UserInfo extends AppCompatActivity {

ListView listview;
Button btn_send;
CheckBox checkbox;
ArrayList<Getter_Setter> user_list;
UserInfoAdapter adapter;
ProgressDialog dialog;
Parser parser = new Parser();
String url = "http://........";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_info);

    listview = (ListView) findViewById(R.id.listview);
    checkbox = (CheckBox) findViewById(R.id.checkbox);
    btn_send = (Button) findViewById(R.id.btn_send);


    ConnectivityManager cn = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo nf = cn.getActiveNetworkInfo();
    if (nf != null && nf.isConnected() == true) {

        new User_Info().execute();
    }

        btn_send.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Intent for Gmail here with all Email ID's
        }
    });
}

public class User_Info extends AsyncTask <String, String, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        dialog = new ProgressDialog(UserInfo.this);
        dialog.setIndeterminate(false);
        dialog.setMessage("Please Wait....");
        dialog.setCancelable(false);
        dialog.show();
    }

    @Override
    protected String doInBackground(String... params) {

        try {

            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

            JSONObject json = parser.getJSONFromUrl(url,nameValuePairs);
            user_list = new ArrayList<Getter_Setter>();

            int result = json.getInt("udata");

            JSONArray array = json.getJSONArray("result");

            if (result == 1){
                for (int i = 0; i < array.length(); i++) {
                    JSONObject jsonObject = array.getJSONObject(i);
                    Getter_Setter getter_setter = new Getter_Setter();
                    getter_setter.setId(jsonObject.getString("id"));
                    getter_setter.setName(jsonObject.getString("name"));
                    getter_setter.setEmail(jsonObject.getString("email"));
                    getter_setter.setPassword(jsonObject.getString("password"));
                    getter_setter.setReg_Date(jsonObject.getString("reg_date"));

                    user_list.add(getter_setter);
                    adapter = new UserInfoAdapter(UserInfo.this,user_list);
                }

            } if (result == 0){
                return "Something Went Wrong";
            }
         } catch (JSONException e) {
            e.printStackTrace();
            Log.e("Exception", "" + e.toString());
            return "Try Again";
        }
        return null;
    }

    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        dialog.dismiss();
        listview.setAdapter(adapter);
    }
}

UserInfoAdapter.java Class:

public class UserInfoAdapter extends BaseAdapter {

Context context;
ArrayList<Getter_Setter> user_info_list;


public UserInfoAdapter(Context mContext, ArrayList<Getter_Setter> m_user_info_list) {

    this.context = mContext;
    this.user_info_list = m_user_info_list;
}

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

@Override
public Object getItem(int position) {
    return user_info_list.get(position);
}

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

@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    final ViewHolder mHolder;
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.user_info_adapter, null);
        mHolder = new ViewHolder();

        mHolder.Name = (TextView) convertView.findViewById(R.id.txt_name);
        mHolder.Email = (TextView) convertView.findViewById(R.id.txt_email);
        mHolder.checkbox = (CheckBox) convertView.findViewById(R.id.checkbox);

        mHolder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        int getPosition = (Integer) buttonView.getTag();

                        user_info_list.get(getPosition).setSelected((buttonView.isChecked()));
                    }
                });

        convertView.setTag(mHolder);
        convertView.setTag(R.id.txt_name, mHolder.Name);
        convertView.setTag(R.id.txt_email, mHolder.Email);
        convertView.setTag(R.id.checkbox, mHolder.checkbox);

    } else {
        mHolder = (ViewHolder) convertView.getTag();
    }
            mHolder.checkbox.setTag(position);
            mHolder.Name.setText("Name: " + user_info_list.get(position).getName());
            mHolder.Email.setText("Email: " + user_info_list.get(position).getEmail());
            mHolder.checkbox.setChecked(user_info_list.get(position).isSelected());


    return convertView;
    }

private class ViewHolder {
    private TextView Name;
    private TextView Email;
    private CheckBox checkbox;

 }

}

Getter_Setter.java Class:

public class Getter_Setter {

private String Id;
private String Name;
private String Email;
private String Password;
private String Reg_Date;

public boolean isSelected() {
    return Selected;
}

public void setSelected(boolean selected) {
    Selected = selected;
}

private boolean Selected = false;


public String getId() {
    return Id;
}

public void setId(String id) {
    Id = id;
}

public String getName() {
    return Name;
}

public void setName(String name) {
    Name = name;
}

public String getEmail() {
    return Email;
}

public void setEmail(String email) {
    Email = email;
}

public String getPassword() {
    return Password;
}

public void setPassword(String password) {
    Password = password;
}

public String getReg_Date() {
    return Reg_Date;
}

public void setReg_Date(String reg_Date) {
    Reg_Date = reg_Date;
}




Aucun commentaire:

Enregistrer un commentaire