0

==================================================== ========================== 谢谢您的回答!我更改了代码并添加了一些 TextView 来检查我的编码是否有效(如果变量正确更改),但在“LED 输入/关闭”“继电器”和“LED 闪烁”下看不到任何值。这有什么问题?:(

private TextView showpin13, showpin5, showLEDblink;


private String pin13 = "";
private String pin5 = "";
private String LEDblink = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_change_status);

    switchPin13 = (Switch) findViewById(R.id.changeLED1);
    switchBlinkPin13 = (Switch) findViewById(R.id.changeLED2);
    switchPin5 = (Switch) findViewById(R.id.changeRELAY);
    viewBlink = (TextView) findViewById(R.id.textView7);

    //임시
    showpin13 = (TextView) findViewById(R.id.showpin13);
    showpin5 = (TextView) findViewById(R.id.showpin5);
    showLEDblink = (TextView) findViewById(R.id.showLEDblink);


    viewBlink.setVisibility(View.INVISIBLE);
    switchBlinkPin13.setVisibility(View.INVISIBLE);


    switchPin13.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (switchPin13.isChecked()) {
                switchBlinkPin13.setVisibility(View.VISIBLE);
                viewBlink.setVisibility(View.VISIBLE);
                pin13 = "1";
            } else {
                pin13 = "0";
                viewBlink.setVisibility(View.INVISIBLE);
                switchBlinkPin13.setVisibility(View.INVISIBLE);
                switchBlinkPin13.setChecked(false);
            }
        }
    });

    switchPin5.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (switchPin5.isChecked()) {
                pin5 = "1";
            } else {
                pin5 = "0";
            }
        }
    });

    switchBlinkPin13.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(switchBlinkPin13.isChecked()){
                LEDblink = "1";
            }
            else{
                LEDblink = "0";
            }
        }
    });


    String pinnumber13 = pin13;

    showpin13.setText(String.valueOf(pinnumber13));
    showpin5.setText(String.valueOf(pin5));
    showLEDblink.setText(String.valueOf(LEDblink));
}

在此处输入图像描述

4

3 回答 3

0

第一个答案是让 String Pin13 成为一个全局变量(即在类内的 onCreate() 中声明它)第二点的答案取决于你想要完成什么你想要关闭它吗pin.setChecked(false)

于 2016-01-23T15:03:43.773 回答
0
  1. 放在Sting pin13外面onCreate()
  2. 里面else只是添加switchBlinkPin13.setChecked(false);
于 2016-01-23T15:05:30.540 回答
0
String pin13="";//CHANGE HERE
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_status);

switchPin13 = (Switch)findViewById(R.id.changeLED1); //LED switch
switchBlinkPin13 = (Switch)findViewById(R.id.changeLED2); //LED blink
switchPin5 = (Switch)findViewById(R.id.changeRELAY); //Relay switch

switchBlinkPin13.setVisibility(View.INVISIBLE);

final String pin13=""; //or change here 

switchPin13.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if(switchPin13.isChecked()){
            switchBlinkPin13.setVisibility(View.VISIBLE);
            pin13 = "1"; //I cannot use pin13 here.
        }
        else {
            pin13 = "0"; //I cannot use pin13 here.
            switchBlinkPin13.setVisibility(View.INVISIBLE);
            //How to set switchBlinkPin13 "OFF"?
        }
    }

但是,您可能希望使用 VIEW.GONE 而不是 INVISIBLE。当您的项目不可见时,它会在您的 LayoutUI 中占用一些空间,因此屏幕中会有一个无用的空间。如果您使用 GONE(您可以将其取回,请放心),您将不会面对它。当您的闪光灯按钮消失时,您不必担心它是 onClickListener。

于 2016-01-23T15:08:46.163 回答