mercredi 25 novembre 2015

How to count the number of checkboxes ticked which is inside a listview

I have an custom array adaptor which is handling a list view. Each row has two checkboxes. There are five rows in total. I want to be able to count the number of checkboxes ticked and then display this number in Stand1

So basically the project Layout is like this

Inside stand1 there is a list view and a text view. The stand1.java calls an array adapter Called CustomArrayAdaptor. I want to be able to count the number of checkboxes clicked and send that data back to the stand1

I am quite new to android development so if somebody can be able to push me in the right direction, it would be great.

Here is my code

Stand1.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://ift.tt/nIICcg"
android:layout_width="match_parent" android:layout_height="match_parent">

<ListView
    android:layout_width="fill_parent"
    android:layout_height="446dp"
    android:id="@+id/Stand1list"
    android:scrollIndicators="right"
    android:smoothScrollbar="true">


</ListView>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Send Score To Databse"
        android:id="@+id/sendtodb"
        android:textSize="12dp"
        android:clickable="true"
        android:layout_below="@+id/Stand1list"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="8/10"
        android:id="@+id/Score"
        android:layout_marginLeft="33dp"
        android:layout_marginStart="33dp"
        android:layout_alignBottom="@+id/sendtodb"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="10dp" />

Row_Layout1.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://ift.tt/nIICcg"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textelement"
        xmlns:android="http://ift.tt/nIICcg"
        android:textSize="30dp"
        android:textStyle="bold"
        android:longClickable="false" />

    <CheckBox
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/Checkbox1"
        android:button="@drawable/checkboxcustom"
        android:layout_marginLeft="50dp" />
    <CheckBox

        android:button="@drawable/checkboxcustom"
        android:id="@+id/Checkbox2"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginLeft="50dp" />

</LinearLayout>

Stand1.java

public class Stand1 extends Fragment {
    ListView mList;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.stand1,container,false);
        mList = (ListView) root.findViewById(R.id.Stand1list);
        return root;
    }

    public void onActivityCreated(Bundle savedInstanceState)
    {
        super.onActivityCreated(savedInstanceState);
        populateListView();
    }

    private void populateListView() {
        String[] pair = {"Pair 1","Pair 2","Pair 3","Pair 4","Pair 5"};

        //build adapter
        ArrayAdapter<String> adapter = new CustomArrayAdaptor(getActivity(),pair);

        mList.setAdapter(adapter);
    }
}

CustomArrayAdaptor.java

public class CustomArrayAdaptor extends ArrayAdapter<String>{


    public CustomArrayAdaptor(Context context, String [] Pairs) {
        super(context, R.layout.row_layout1, Pairs);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = LayoutInflater.from(getContext());
        View CustomView = inflater.inflate(R.layout.row_layout1, parent, false);
        String stringelement = getItem(position);
        TextView Text= (TextView)CustomView.findViewById(R.id.textelement);

        Text.setText(stringelement);
        return CustomView;
    }




}

Thanks Folks




Aucun commentaire:

Enregistrer un commentaire