java - Android 中的 Getter 和 Setter
问题描述
在我的 MainActivity 中,我有一个 Switch 和一个 Button,更改开关状态后,单击按钮后,我想获取开关状态 true/false。为此,出于未知原因,我实现了 Getter 和 Setter,一旦我设置了值,我总是会出错。
主要活动
Switch profession = (Switch) findViewById(R.id.profswitch);
profession.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
GetSwitch SP = new GetSwitch();
SP.setSetClicked(isChecked);
}
});
Button profButton = findViewById(R.id.btnSwitchNxt);
profButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GetSwitch sw = new GetSwitch();
boolean setClicked = sw.isSetClicked();
Log.i("GetSwitch",setClicked+"");
}
});
获取开关
public class GetSwitch{
private boolean setClicked;
public void setSetClicked(boolean setClicked) {
this.setClicked = setClicked;
Log.i("SetSwitch",this.setClicked+"");
}
public boolean isSetClicked() {
return setClicked;
}
}
我在这里做错了什么?
解决方案
您正在使用不同的对象来设置和获取价值。您只需要声明一个 GetSwitch 对象,它必须如下所示。
GetSwitch SP = new GetSwitch();
Switch profession = (Switch) findViewById(R.id.profswitch);
profession.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.setSetClicked(isChecked);
}
});
Button profButton = findViewById(R.id.btnSwitchNxt);
profButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean setClicked = SP.isSetClicked();
Log.i("GetSwitch",setClicked+"");
}
});
推荐阅读
- plsql - 如何在网格中调用过程和输出结果
- python - RabbitMQ pika.exceptions.ConnectionClosed 和 ChannelClosed 心跳
- c++ - C++ - 链表 - 复制构造函数
- sql-server - 在 Ubuntu 16.04 上安装 MSSQL
- python - 如何在python中访问包含浮点变量的数组
- java - 如何仅将 Java Servlet 映射到没有任何扩展名的路径?
- android - 在 shouldOverrideUrlLoading 中未检测到带有 AngularJS 应用程序路由更改的 Android WebView
- html - 页面没有打开正确的大小
- angularjs - Angular 两种方式 DataBinding ,从 Ajax 调用更新模型
- java - 无法通过来自 java 和 postman 的多部分表单数据上传文件