2012-12-10 38 views
0

我试图显示警报,当我在切换按钮 我在一边列表视图中使用切换按钮适配器从接通状态切换到关闭状态,请参考我的代码如下,并请帮助我在做切换按钮时,从用户状态切换到关闭状态... 实际上,当我使用IsChecked()时,它总是调用关闭或关闭n,但我需要以显示警报时只从ON到OFF的切换..显示警报时关状态:Android的

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:padding="10dp" > 

<TextView 
    android:id="@+id/state_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:text="Medium Text" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<ToggleButton 
    android:id="@+id/statetoggleButton" 
    style="@style/on_off_togle_btn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:background="@drawable/togllebuttonselector" /> 

适配器类是:

private final Activity context; 
    public final List<StatesModel> list; 
    AlertDialog alertDialog; 

    public List<StatesModel> getList() { 
     return list; 
    } 

    public StateListAdapter(Activity context, List<StatesModel> list) { 
     super(context, R.layout.states_list, list); 
     this.context = context; 
     this.list = list; 
    } 

    static class ViewHolder { 
     protected TextView text; 
     protected ToggleButton checkbox; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = null; 
     if (convertView == null) { 
      LayoutInflater inflator = context.getLayoutInflater(); 
      view = inflator.inflate(R.layout.states_list, null); 
      final ViewHolder viewHolder = new ViewHolder(); 
      viewHolder.text = (TextView) view.findViewById(R.id.state_name); 
      viewHolder.checkbox = (ToggleButton) view 
        .findViewById(R.id.statetoggleButton); 
      viewHolder.checkbox 
       .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(
          final CompoundButton buttonView, 
          boolean isChecked) { 
         final StatesModel element = (StatesModel) viewHolder.checkbox 
           .getTag(); 

          if (!isChecked) { AlertDialog.Builder builder = 
          new AlertDialog.Builder(context); 
          builder.setTitle("Warning"); String message = 
          "Title is here" 
          ; builder.setMessage(message); 
          builder.setPositiveButton("OK", new 
          DialogInterface.OnClickListener() { 

          @Override public void onClick(DialogInterface 
          dialog, int which) { alertDialog.dismiss(); 
          element.setSelected(buttonView .isChecked()); } 
          }); builder.setNegativeButton("Cancel", new 
          DialogInterface.OnClickListener() { 

          @Override public void onClick(DialogInterface 
          dialog, int which) { buttonView.setChecked(true); 
          alertDialog.dismiss(); } }); alertDialog = 
          builder.create(); alertDialog.show(); } else 





         element.setSelected(buttonView.isChecked()); 

        } 
       }); 
      view.setTag(viewHolder); 
      viewHolder.checkbox.setTag(list.get(position)); 
     } else { 
      view = convertView; 
      ((ViewHolder) view.getTag()).checkbox.setTag(list.get(position)); 
     } 
     ViewHolder holder = (ViewHolder) view.getTag(); 
     holder.text.setText(list.get(position).getName()); 
     holder.checkbox.setChecked(list.get(position).isSelected()); 
     return view; 
    } 

请检查在进阶经过变化的方法..thanks ...任何帮助将高度赞赏..

+0

这里是您展示您的警报呢?你为什么不在这里添加它? –

+0

感谢查询... :)我想显示警报时,从开启状态切换中的按钮关闭状态经过改变.. – SRam

+0

嗨..我已经编辑我在检查代码的改变,但警报来总是同时为关闭或关到开状态..我只想当开到关状态改变.. – SRam

回答

0
ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton); 
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     if (isChecked) { 
      // The toggle is enabled 
     } else { 
      // The toggle is disabled 
     } 
    } 
}); 

如果是做检查写否则不checke代码中使用

+0

请参考我的代码,我使用的切换按钮适配器,我用上面的代码,但它不工作,不知道为什么.. – SRam

+0

您正在使用(!器isChecked)先删除与替换写如果(器isChecked)其他{} – QuokMoon