【问题标题】:How to get the position in a checkbox inside a ListView如何在 ListView 内的复选框中获取位置
【发布时间】:2016-01-15 09:12:41
【问题描述】:

我有一个带有复选框的 listView。我想要做的是当我单击复选框时在 Toast 中显示此复选框的位置。我正在尝试一些事情,但我现在不知道我做错了什么。我在这里找到了一些类似的解决方案,但对我不起作用。

在我的代码中,如果您在行中按下,我可以显示 Toast,但如果您按下复选框则不会。

提前致谢

public class MyClass extends HmBaseActivity{

    protected ListView listView ;
    protected CheckBox selectDay;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.play_all_day);

        listView = (ListView) findViewById(R.id.weekList);
        listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE);
        selectDay = (CheckBox)findViewById(R.id.checkBox_play_all_day);

       final String[] values = new String[] {
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday",
                "Saturday",
                "Sunday"};

        ArrayAdapter <String> adapter = new ArrayAdapter<String>(this, R.layout.list_days, R.id.play_all_day, values);
        listView.setAdapter(adapter);
        listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // ListView Clicked item value
                String  itemValue = (String) listView.getItemAtPosition(position);

                Toast.makeText(getApplicationContext(),
                        "Position :" + position + "  ListItem : " + itemValue, Toast.LENGTH_LONG)
                        .show();

            }

        });
    }
}

【问题讨论】:

    标签: android listview checkbox android-listview


    【解决方案1】:

    试试这个:

    selectDay.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    
       @Override
       public void onCheckedChanged(CompoundButton compoundButtonView, boolean isChecked) {
    
         // ListView Clicked item value
            String  itemValue = (String) listView.getItemAtPosition(position);
    
            Toast.makeText(getApplicationContext(),
                        "Position :" + position + "  ListItem : " + itemValue, Toast.LENGTH_LONG)
                        .show();
       });     
    

    【讨论】:

    • 这是一个不同的问题,只需调试您的应用并检查为什么 selectDay 为空
    猜你喜欢
    • 2014-01-10
    • 2012-06-30
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    相关资源
    最近更新 更多