我建议您创建一个自定义ArrayAdapter
类并覆盖该getView()
方法。通过该方法,您可以访问设置切换的列表项的位置,并且可以OnCheckedChangeListener
为每个切换按钮创建一个唯一的,将列表的位置传递给它。
我假设您已经有一个 XML 布局文件,用于每个 ListView 项目中应该包含的任何内容,因为您提到了警报和切换按钮。
更新:
为了获取闹钟时间并将其发送到enableAlarm()
方法,您需要将其保存为final
变量,getView()
以便您可以在onCheckedChangeListener
. 看一下我得到 ToggleButton 后添加的代码。
@override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater inflater = getContext().getLayoutInflater();
v = inflater.inflate(R.layout.alarm_item, parent, false);
}
ToggleButton toggle = (ToggleButton) v.findViewById(R.id.alarmToggle);
//get the alarm time
TextView timeView = (TextView) v.findViewById(R.id.theAlarmTextView);
final String alarmTime = timeView.getText();
toggle.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked)
//modify your enableAlarm method to take in the time as a String
enableAlarm(buttonView, alarmTime);
}
}
});
return v;
}