列表视图切换按钮单击以停止不同 class 的 alarmManager
listview toggle button click to stop alarmManager of different class
所以我的主 activity 中有一个包含切换按钮的列表视图
我想初始化并使用切换按钮
我所知道的是我应该在我的 getView 中初始化它,而不是在我的 onCreate 中,因为它在列表视图中
但是无论我是在 onCreate 还是 getView 中设置它,我都会得到一个空指针异常指向我的行 toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {.. 我做错了什么
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if(row==null || row.getTag()==null){
LayoutInflater inflater = LayoutInflater.from(activity);
row = inflater.inflate(layoutResource,null);
holder=new ViewHolder();
holder.mTitle=(TextView)row.findViewById(R.id.name);
holder.mDate=(TextView)row.findViewById(R.id.dateText);
holder.mTime=(TextView)row.findViewById(R.id.timeText);
row.setTag(holder);
}else{
holder = (ViewHolder)row.getTag();
}
holder.myAlarm = getItem(position);
holder.mTitle.setText(holder.myAlarm.getTitle());
holder.mDate.setText(holder.myAlarm.getMonth()+" "+holder.myAlarm.getDay()+", "+holder.myAlarm.getYear());
ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleButton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Toast.makeText(MainActivity.this, "IT IS CHECKED", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "IT IS NOT CHECKED", Toast.LENGTH_SHORT).show();
}
}
});
return row;
}
任何帮助将不胜感激
您的切换按钮是否包含在列表视图的每一行中?如果不是使用这个
ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleButton);
使用这个
holder.toggle = (ToggleButton) row.findViewById(R.id.toggleButton);
所以我的主 activity 中有一个包含切换按钮的列表视图 我想初始化并使用切换按钮 我所知道的是我应该在我的 getView 中初始化它,而不是在我的 onCreate 中,因为它在列表视图中 但是无论我是在 onCreate 还是 getView 中设置它,我都会得到一个空指针异常指向我的行 toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {.. 我做错了什么
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if(row==null || row.getTag()==null){
LayoutInflater inflater = LayoutInflater.from(activity);
row = inflater.inflate(layoutResource,null);
holder=new ViewHolder();
holder.mTitle=(TextView)row.findViewById(R.id.name);
holder.mDate=(TextView)row.findViewById(R.id.dateText);
holder.mTime=(TextView)row.findViewById(R.id.timeText);
row.setTag(holder);
}else{
holder = (ViewHolder)row.getTag();
}
holder.myAlarm = getItem(position);
holder.mTitle.setText(holder.myAlarm.getTitle());
holder.mDate.setText(holder.myAlarm.getMonth()+" "+holder.myAlarm.getDay()+", "+holder.myAlarm.getYear());
ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleButton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Toast.makeText(MainActivity.this, "IT IS CHECKED", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "IT IS NOT CHECKED", Toast.LENGTH_SHORT).show();
}
}
});
return row;
}
任何帮助将不胜感激
您的切换按钮是否包含在列表视图的每一行中?如果不是使用这个
ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleButton);
使用这个
holder.toggle = (ToggleButton) row.findViewById(R.id.toggleButton);