【问题标题】:Change State of ToggleButton programmatically以编程方式更改 ToggleButton 的状态
【发布时间】:2016-12-23 23:36:30
【问题描述】:

我已经放置了一个 id 为 toggleButton 的切换按钮

我正在使用下面的代码来检查它是打开还是关闭

public void toggleClick(View view){

boolean on = ((ToggleButton) view).isChecked();
if(on){

}else{

}

}

一切正常。我正在尝试更改切换按钮的状态,我通过互联网尝试了很多代码,但没有一个将切换状态更改为关闭。

我试过了:

ToggleButton toggleButtons;
toggleButtons  = (ToggleButton) findViewById(R.id.toggleButton); //In onCreate
toggleButtons.setChecked(false);

有什么想法吗?

【问题讨论】:

    标签: android android-togglebutton


    【解决方案1】:

    setChecked(boolean checked) 为例:

    toggleButtons.setChecked(true)
    

    【讨论】:

      【解决方案2】:

      我最终使用 ImageButton 使用 Toggle 功能。下面的代码运行良好。

       *
      
      private ImageButton ib;
          @Override
          public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
          //......
                     ib = (ImageButton) rootView.findViewById(R.id.imagefavouriteButton);
                      if (checkFavorite()) {
                          ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_on));
                      } else {
                          ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_off));
                      }
                      ib.setOnClickListener(new View.OnClickListener() {
                          @Override
                          public void onClick(View v) {
                              if (checkFavorite()) {
                                  remFromFav();
                              } else {
                                  addFavorites();
                              }
                          }
                      });
          //.....
       }
          private boolean checkFavorite(){// code to check in db}
          public void addFavorites() {
              ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_on));
              Toast.makeText(getActivity(), "Added ...", Toast.LENGTH_SHORT).show();
          }
          public void remFromFav() {
              ib.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.fav_off));
              Toast.makeText(getActivity(), "Removed ...", Toast.LENGTH_SHORT).show();
          }
      

      希望对你有所帮助。

      【讨论】:

        猜你喜欢
        • 2011-08-22
        • 2011-06-29
        • 1970-01-01
        • 2012-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多