如何在 ListView 内的复选框中获取位置
Posted
技术标签:
【中文标题】如何在 ListView 内的复选框中获取位置【英文标题】:How to get the position in a checkbox inside a 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();
);
【问题讨论】:
【参考方案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 为空以上是关于如何在 ListView 内的复选框中获取位置的主要内容,如果未能解决你的问题,请参考以下文章
单击按钮时如何在android中获取带有ListView值的复选框,EditText?
如何使用复选框和自定义适配器从 Listview 中获取选定的列表项?