簡體   English   中英

Android 帶CheckBox的ListView可以區分點擊

[英]Android ListView with CheckBox can distinguish the click

我正在嘗試使用 CheckBox 創建一個 ListView...Th ListView 應該允許用戶同時 select 一個項目或打開該項目到 select 里面的其他選擇。 換句話說,ListView 應該能夠區分對復選框的點擊和對項目本身的點擊。

我嘗試使用 android.R.layout.simple_list_item_multiple_choice 來實現它,但是這個允許我只選中復選框,即使我在復選框外(在項目上)單擊也是如此。

任何人都可以幫忙嗎?
這是我的代碼,

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class ListViewActivity extends Activity implements OnItemClickListener {  

ListView directoryList;


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

    final ArrayList<String> contacts = new ArrayList<String>();
    contacts.add("zaid");
    contacts.add("hazem");
    contacts.add("Oubai");


    directoryList= (ListView) findViewById(R.id.directoryList);


    final ArrayAdapter<String> arrayAdapter;
    arrayAdapter = new ArrayAdapter<String>(this,
                                  android.R.layout.simple_list_item_multiple_choice,
                                  contacts);


    directoryList.setAdapter(arrayAdapter);
    directoryList.setOnItemClickListener(this);
    directoryList.setClickable(true);



}

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {




}

}

您需要一個定制的陣列適配器。 在您的 getView() 中,抓住您的復選框並設置 OnCheckedChangeListener()

這是有關如何制作自己的自定義適配器的教程。 該示例有一個可單擊的文本框,但您可以將其更改為適用於復選框。

http://www.shubhayu.com/android/listview-with-arrayadapter-and-customized-items

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM