标记和选择列表视图时出现问题

时间:2013-02-08 09:27:28

标签: android

在我的应用程序中,我有一个列表视图,现在问题是我想获得标记的位置 我正在使用的代码是

        @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            System.out.println("Entered Delete Button");
                String selected = "";
                int cntChoice = lv.getCount();
                System.out.println("The Number Of Contacts"+cntChoice);
                SparseBooleanArray x = lv.getCheckedItemPositions();
                System.out.println(x);
                for(int i = 0; i < cntChoice; i++){
                    if(x.get(i)) {
                        selected += lv.getItemAtPosition(i).toString() + "\n";  

                    }
                }   
                Toast.makeText(ViewSelectedContacts.this, 
                        selected, 
                        Toast.LENGTH_LONG).show();
            }
        });

问题是SparseBooleanArray没有填充元素 我也添加了

    android:choiceMode="multipleChoice"
列表视图中的

..有人请帮我解决问题

1 个答案:

答案 0 :(得分:1)

  Try this code (works for me):

// MainActivity

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

       final ListView listTags = (ListView) findViewById(R.id.listPack);
       listTags.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mStrings));
       listTags.setOnItemClickListener(new OnItemClickListener() {

           @Override
           public void onItemClick(AdapterView<?> parent, View view,
                   int position, long id) {
               listTags.setSelection(position);
//               Toast.makeText(getParent(), "hello", Toast.LENGTH_LONG).show();
           }
       });



    }


     private String[] mStrings = {

        "Comte", "Coolea", "Cooleney", "Coquetdale", "Corleggy", "Cornish Pepper",
        "Cotherstone", "Cotija", "Cottage Cheese", "Cottage Cheese (Australian)",
        "Cougar Gold", "Coulommiers", "Coverdale", "Crayeux de Roncq", "Cream Cheese",
        "Cream Havarti", "Crema Agria", "Crema Mexicana", "Creme Fraiche", "Crescenza",
        "Croghan", "Crottin de Chavignol", "Crottin du Chavignol", "Crowdie", "Crowley",
        "Cuajada", "Curd", "Cure Nantais", "Curworthy", "Cwmtawe Pecorino",
       };

// Main xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <ListView
        android:id="@+id/listPack"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="5dip"
        android:layout_marginLeft="5dip"
        android:layout_marginRight="5dip"
        android:layout_weight="1" >
    </ListView>

        </LinearLayout>

// list_item.xml // layout

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp" >
</TextView>