Sunday, November 15, 2015

Tạo sự kiện checked Item cho ListView

package net.trongtam.appqlnv;

import android.app.Activity;

import android.os.Bundle;

import android.util.SparseBooleanArray;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.ListView;

import android.widget.Toast;



public class MainActivity extends Activity {

    ListView myListView;

    Button getChoice;

    String[] listContent = {

            "January",

            "February",

            "March",

            "April",

            "May",

            "June",

            "July",

            "August",

            "September",

            "October",

            "November",

            "December"
    };

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        myListView = (ListView)findViewById(R.id.list);

        getChoice = (Button)findViewById(R.id.getchoice);

        ArrayAdapter<String> adapter

                = new ArrayAdapter<String>(this,

                android.R.layout.simple_list_item_checked,

                listContent);


// chọn chế độ checked item cho ListView. Gồm CHOICE MODE MULTIPLE và CHOICE MODE SINGLE
        myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        myList.setAdapter(adapter);

        getChoice.setOnClickListener(new Button.OnClickListener(){

            @Override
            public void onClick(View v) {

                // TODO Auto-generated method stub

                String selected = "";

                int cntChoice = myList.getCount();
 
// lấy ra mảng các item được checked
                SparseBooleanArray sparseBooleanArray = myList.getCheckedItemPositions();

                for(int i = 0; i < cntChoice; i++){

                    if(sparseBooleanArray.get(i)) {

                        selected += myList.getItemAtPosition(i).toString() + "\n";

                    }

                }

                Toast.makeText(MainActivity.this,

                        selected,

                        Toast.LENGTH_LONG).show();

            }});

    }

}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    
    <Button
        android:id="@+id/getchoice"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Get Choice"
        />

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"        />

</LinearLayout>

No comments:

Post a Comment