=============================================== ============================ 谢谢您的回答!我更改了我的代码并添加了一些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));
}
答案 0 :(得分:0)
第一个答案是使String Pin13成为一个全局变量(即在类中声明它的onCreate())
第二点的答案将取决于你想要完成什么,你想要将它解决为pin.setChecked(false)
答案 1 :(得分:0)
Sting pin13
放在onCreate()
else
内添加switchBlinkPin13.setChecked(false);
答案 2 :(得分: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(你可以把它拿回去,别担心),你就不会面对它。当你的方向指示灯按钮为GONE时,你不必担心它的onClickListener。