we provide information about gadget news and price information and specs samsung, huawei, Tecno Price products, Specifications, Features and more information about software from blackberry and android

Saturday, September 29, 2012

Android Multiple Select ListView

Android Multiple Select ListView - Did you know that every day there is always a new technology that is created? if you want to know please refer to the blog Gadget News well now we will discuss first about Android Multiple Select ListView as you need now, we have compiled this article carefully, so please see to finish.

Articles : Android Multiple Select ListView
full Link : Android Multiple Select ListView

You can also see our article on:


    Android Multiple Select ListView



    Android Multiple Choice ListView Using Custom Adapter.This listview you can use when you send sms to more than one friend or any notification to your friends.


    So using Custom Adapeter we have to create row.xml layout which has checkbox.

    row.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@android:color/white" >

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_margin="5dp"
            android:layout_toLeftOf="@+id/checkbox"
            android:text="title"
            android:textColor="@android:color/black"
            android:textSize="20dp"
            android:textStyle="bold" >
        </TextView>

        <CheckBox
            android:id="@+id/checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="10dip"
            android:background="@drawable/chk"
            android:button="@null"
            android:focusable="false"
            android:focusableInTouchMode="false" >
        </CheckBox>
    </RelativeLayout>

     Now Using Adapter we can bind data to ListView.But we need to learn easy way to bind data with custom ListView and also hadle CheckBox Listener For Each Row.

    So here i have RSS Feed to get data from web and then i add it in List<NameBean>.NameBean is bean class which contains value of Rss Feed Element and we have to maintain one boolean for checkbox state either checked or not.And generate Getters And Setters.

    NameBean.java


    public class NameBean {

    private String name;
    private boolean selected;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public boolean isSelected() {
    return selected;
    }

    public void setSelected(boolean selected) {
    this.selected = selected;
    }

    }

    Now when you get data through XML Parsing you have to create Object of NameBean and you can set data and add Object to List.


    for (int temp = 0; temp < nList.getLength(); temp++) {

    Node nNode = nList.item(temp);

                      if (nNode.getNodeType() == Node.ELEMENT_NODE) {

       Element eElement = (Element) nNode;

        NameBean objItem = new NameBean();

       objItem.setName(getTagValue("name", eElement));
                     
       list.add(objItem);

    }
    }



    Now list  is fill up with NameBean Objects.And you can retrive data in Adapter so when you set ListView you just retrieve data in getView(...) method of Adapter.

    In getView(...) method put checkBox listener to listen checkbox is check or not, if its checked then set boolean true for that object of NameBean And if its not checked then setSelected false to Namebean object.

    So when you start this example in listview and its get data from webservice and bind data to listview using NameAdapter Class.



    NameAdapter.java


    import java.util.List;

    import android.app.Activity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.CheckBox;
    import android.widget.CompoundButton;
    import android.widget.TextView;

    public class NamesAdapter extends ArrayAdapter<NameBean> {

    private List<NameBean> list;
    private LayoutInflater inflator;

    public NamesAdapter(Activity context, List<NameBean> list) {
    super(context, R.layout.row, list);
    this.list = list;
    inflator = context.getLayoutInflater();
    }

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

    ViewHolder holder = null;
    if (convertView == null) {
    convertView = inflator.inflate(R.layout.row, null);
    holder = new ViewHolder();
    holder.title = (TextView) convertView.findViewById(R.id.title);
    holder.chk = (CheckBox) convertView.findViewById(R.id.checkbox);
    holder.chk
    .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(CompoundButton view,
    boolean isChecked) {
    int getPosition = (Integer) view.getTag();
    list.get(getPosition).setSelected(view.isChecked());

    }
    });
    convertView.setTag(holder);
    convertView.setTag(R.id.title, holder.title);
    convertView.setTag(R.id.checkbox, holder.chk);
    } else {
    holder = (ViewHolder) convertView.getTag();
    }
    holder.chk.setTag(position);

    holder.title.setText(list.get(position).getName());
    holder.chk.setChecked(list.get(position).isSelected());

    return convertView;
    }

    static class ViewHolder {
    protected TextView title;
    protected CheckBox chk;
    }
    }


    When your listView is bind with data you can see checkbox in row with name and now you can get Selected name using NameBean Object and you can retrieve it from list.


                    // Retrive Data from list Using for-each loop
                    StringBuffer sb = new StringBuffer();
    for (NameBean bean : items) {

    if (bean.isSelected()) {
    sb.append(bean.getName());
    sb.append(",");
    }
    }



    Now you get All Selected name from ListView.So its so easy to write Multiple Choice ListView in Android.


    You Can Download Full Source Code



    article Android Multiple Select ListView has been completed in the discussion

    hopefully the information Android Multiple Select ListView that we provide can be useful for you to know the development of technology in the present

    articles Android Multiple Select ListView we have conveyed to you, if feel this information is useful and you want to bookmark or share so that more people who know please use link https://profsmythe.blogspot.com/2012/09/android-multiple-select-listview.html.

    Tag :
    Share on Facebook
    Share on Twitter
    Share on Google+
    Tags :

    Related : Android Multiple Select ListView

      0 comments:

      Post a Comment