2016-10-22 41 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

我已经发布了代码,请你帮我解决。 –