listview切换按钮单击以停止不同类的alarmManager

时间:2017-05-22 08:24:36

标签: android listview togglebutton getview

所以我在主活动中有一个包含切换按钮的列表视图 我想初始化并使用切换按钮 我知道的是,我应该在我的onView中的getView ...中初始化它,因为它在listview中 但是我是否在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;
 }

任何帮助都将非常感激

1 个答案:

答案 0 :(得分:0)

您的切换按钮是否包含在listview的每一行?如果那不是使用这个

ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleButton);

使用此

holder.toggle = (ToggleButton) row.findViewById(R.id.toggleButton);