1

我试图让一个 ToggleButton 在两种类型的文本之间来回切换 TextView 中的文本。当我第一次单击时,它将默认文本切换为替代文本,但当我再次单击它时不会将其切换回来。这是我的代码:

ELswitch = (ToggleButton)findViewById(R.id.toggleButton1);
    ELswitch.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(ELswitch.isEnabled()==true)
            {
                InputStream iFile = getResources().openRawResource(R.raw.raw_text_file_alternate);
                try {

                    text.setText(inputStreamToString(iFile));
                    text.setFocusable(false);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } else {
                InputStream iFile = getResources().openRawResource(R.raw.raw_text_file_default);
                try {

                    text.setText(inputStreamToString(iFile));
                    text.setFocusable(false);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    });

我收到的一个解决问题的建议是只使用一个常规按钮和一个计数器和 2 的 mod。似乎应该有一种方法可以从 ToggleButton 做到这一点。我想我可能错误地实例化了 ToggleButton 或错误地使用了 if 语句,但我找不到错误。有任何想法吗?

4

1 回答 1

1

看起来您的比较适用于:

ELswitch.isEnabled()==true

这只会告诉你开关是否启用,而不是它是否被检查。您可能需要更改它以检查它是否被选中:

ELswitch.isChecked()==true

您可以在以下指南/文档中找到有关“切换”按钮的更多信息:

http://developer.android.com/reference/android/widget/ToggleButton.html

从您的问题来看,您似乎还想使用OnCheckedChangeListener而不是OnClickListener。例如,可以在下面的指南中找到:

http://developer.android.com/guide/topics/ui/controls/togglebutton.html

希望这会有所帮助!

于 2012-11-01T16:57:36.270 回答