我已经习惯了 React.js
6 个月,并开始从头开始为我的 Android 应用程序开发一个应用程序。
在 React.js
中,当 boolean 值从 false 变为 true 时它所做的一切:
this.state = {
checkmarkChecked: false
}
if (this.state.checkmarkChecked) {
//If the checkmarkChecked is true
//TODO: show all checks
} else {
//If the checkmarkChecked is false
//TODO: hide all checks
}
如果 checkmarkChecked 被切换为 true,它会调用 true 来显示。
现在我是 Android 开发 Java 的新手,我尝试了其中之一:
//onCreate
while (true) {
if (checkmarkChecked) {
System.out.println("True");
} else {
System.out.println("False");
}
}
实际上,while(true) 会导致我的应用程序在开始时卡住。
最佳答案
您可以使用包含Boolean
的MutableLiveData
,并注册 Activity 以使用.observe()
观察它。
每当这个 boolean 值发生变化时,onChanged()
回调就会被 boolean 值的新值触发。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MutableLiveData<Boolean> state = new MutableLiveData<>(false);
state.observe(this, new Observer<Boolean>() {
@Override
public void onChanged(Boolean newValue) {
if (newValue) {
Toast.makeText(MainActivity.this, "True", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "False", Toast.LENGTH_SHORT).show();
}
}
});
Button myButton = findViewById(..);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
state.setValue(!state.getValue());
}
});
}
}
用于切换 boolean 值以测试它的按钮
关于javascript - 如何像 React.js 一样在 Java 中进行实时值更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65526623/