2016-10-22 42 views
0

在我的片段,我有以下代碼:setOnCheckedChangeListener沒有發射

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

    Routes_Checkbox_Pickup.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       Routes_EditText_AlarmPickup.setEnabled(isChecked); 
       Routes_Spinner_Pickup_Routes.setEnabled(isChecked); 
       Routes_Spinner_Pickup_TrackingLocations.setEnabled(isChecked); 
      if(isChecked==true) 
       Routes_EditText_AlarmPickup.requestFocus(); 
     } 
    }); 
    Routes_Checkbox_Drop.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      Routes_EditText_AlarmDrop.setEnabled(isChecked); 
      Routes_Spinner_Drop_Routes.setEnabled(isChecked); 
      Routes_Spinner_Drop_TrackingLocations.setEnabled(isChecked); 
      if(isChecked==true) 
       Routes_EditText_AlarmDrop.requestFocus(); 

     } 
    }); 
} 

在一個按鈕點擊我有以下代碼:

Routes_Checkbox_Pickup.setChecked(false); 

但是上面的代碼不會觸發上面設置的事件。怎麼了 ?

編輯

全碼:

@Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.routes_fragment, container, false); 

     Routes_Checkbox_Pickup = (CheckBox) view.findViewById(R.id.Routes_Checkbox_Pickup); 
     Routes_Spinner_Pickup_Routes = (Spinner) view.findViewById(R.id.Routes_Spinner_Pickup_Routes); 
     Routes_TextInputLayout_AlarmPickup = (TextInputLayout) view.findViewById(R.id.Routes_TextInputLayout_AlarmPickup); 
     Routes_EditText_AlarmPickup = (EditText) view.findViewById(R.id.Routes_EditText_AlarmPickup); 
     Routes_Spinner_Pickup_TrackingLocations = (Spinner) view.findViewById(R.id.Routes_Spinner_Pickup_TrackingLocations); 

     Routes_Checkbox_Drop = (CheckBox) view.findViewById(R.id.Routes_Checkbox_Drop); 
     Routes_Spinner_Drop_Routes = (Spinner) view.findViewById(R.id.Routes_Spinner_Drop_Routes); 
     Routes_TextInputLayout_AlarmDrop = (TextInputLayout) view.findViewById(R.id.Routes_TextInputLayout_AlarmDrop); 
     Routes_EditText_AlarmDrop = (EditText) view.findViewById(R.id.Routes_EditText_AlarmDrop); 
     Routes_Spinner_Drop_TrackingLocations = (Spinner) view.findViewById(R.id.Routes_Spinner_Drop_TrackingLocations); 

     Routes_Button_Save = (Button) view.findViewById(R.id.Routes_Button_Save); 
     Routes_Button_Save.setBackgroundResource(R.drawable.button_enabled); 

     Routes_EditText_AlarmPickup.setSingleLine(true); 
     Routes_EditText_AlarmDrop.setSingleLine(true); 

     Routes_Checkbox_Pickup.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
        Routes_EditText_AlarmPickup.setEnabled(isChecked); 
        Routes_Spinner_Pickup_Routes.setEnabled(isChecked); 
        Routes_Spinner_Pickup_TrackingLocations.setEnabled(isChecked); 
       if(isChecked==true) 
        Routes_EditText_AlarmPickup.requestFocus(); 
      } 
     }); 
     Routes_Checkbox_Drop.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       Routes_EditText_AlarmDrop.setEnabled(isChecked); 
       Routes_Spinner_Drop_Routes.setEnabled(isChecked); 
       Routes_Spinner_Drop_TrackingLocations.setEnabled(isChecked); 
       if(isChecked==true) 
        Routes_EditText_AlarmDrop.requestFocus(); 

      } 
     }); 
} 
+0

你能告訴你的片段的整個代碼? – Marat

+0

你在哪裏初始化'Routes_Checkbox_Pickup',因爲我沒有看到任何視圖在onCreateView中膨脹,我覺得你的代碼比預期的要複雜得多。所以我想完整的代碼可以幫助更好 –

+0

我已經發布了代碼。 –

回答

0

我猜viewHolder是不是有onCreateView()之前更新UI

添加

ViewHolder holder = new ViewHolder(); 

然後變化

Routes_Checkbox_Pickup.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       holder.Routes_EditText_AlarmPickup.setEnabled(isChecked); 
       holder.Routes_Spinner_Pickup_Routes.setEnabled(isChecked); 
       holder.Routes_Spinner_Pickup_TrackingLocations.setEnabled(isChecked); 
      if(isChecked==true) 
       holder.Routes_EditText_AlarmPickup.requestFocus(); 
     } 
    }); 
    Routes_Checkbox_Drop.setOnCheckedChangeListener(new 

CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       holder.Routes_EditText_AlarmDrop.setEnabled(isChecked); 
       holder.Routes_Spinner_Drop_Routes.setEnabled(isChecked); 


holder.Routes_Spinner_Drop_TrackingLocations.setEnabled(isChecked); 
       if(isChecked==true) 
        holder.Routes_EditText_AlarmDrop.requestFocus(); 
      } 
     }); 

還使用持有人initize在onCreateView按鈕的觀點()

+0

RecyclerView.ViewHolder不能被初始化。 holder = RecyclerView.ViewHolder new RecyclerView.ViewHolder(); –

+0

能不能請你在這裏粘貼你的總課程代碼我會嘗試編譯並希望能拿出一個解決方案:) –

+0

我已經發布了代碼,請你幫我解決。 –