2012-12-10 36 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