我是一个初学者,以下是我到目前为止拥有的代码。单击按钮时,它将在复选标记和空白框之间切换(很好)。但是,退出应用程序时,该按钮不会保存被选中的状态(选中标记)。
我的所有代码都已附上,以便您可以清楚地看到正在发生的事情。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ConstraintLayout clMessagesContainer = (ConstraintLayout) findViewById(R.id.clMessagesContainer);
final EditText txtMessage = (EditText) findViewById(R.id.txtMessage);
Button btnSendL = (Button) findViewById(R.id.btnSendL);
Button btnSendR = (Button) findViewById(R.id.btnSendR);
btnSendL.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
TextView lblNxtMessage = new TextView(MainActivity.this);
lblNxtMessage.setId(View.generateViewId());
lblNxtMessage.setLayoutParams(new ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.WRAP_CONTENT,
ConstraintLayout.LayoutParams.WRAP_CONTENT));
lblNxtMessage.setText(txtMessage.getText().toString());
clMessagesContainer.addView(lblNxtMessage);
ConstraintSet csL = new ConstraintSet();
csL.clone(clMessagesContainer);
csL.connect(lblNxtMessage.getId(), ConstraintSet.LEFT, ConstraintSet.PARENT_ID, ConstraintSet.LEFT, 0);
csL.connect(lblNxtMessage.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 0);
csL.applyTo(clMessagesContainer);
}
});
btnSendR.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
TextView lblNxtMessage = new TextView(MainActivity.this);
lblNxtMessage.setId(View.generateViewId());
lblNxtMessage.setLayoutParams(new ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.WRAP_CONTENT,
ConstraintLayout.LayoutParams.WRAP_CONTENT));
lblNxtMessage.setText(txtMessage.getText().toString());
clMessagesContainer.addView(lblNxtMessage);
ConstraintSet csR = new ConstraintSet();
csR.clone(clMessagesContainer);
csR.connect(lblNxtMessage.getId(), ConstraintSet.RIGHT, ConstraintSet.PARENT_ID, ConstraintSet.RIGHT, 0);
csR.connect(lblNxtMessage.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 0);
csR.applyTo(clMessagesContainer);
}
});
}
}
答案 0 :(得分:0)
直接提供图片名称,我测试了答案是否有效
override func viewDidLoad() {
super.viewDidLoad()
if UserDefaults.standard.bool(forKey: "checkBoxSave01") == true {
checkBoxButton1.setImage(#imageLiteral(resourceName: "id"), for: .normal)
}else{
checkBoxButton1.setImage(#imageLiteral(resourceName: "phone"), for: .normal)
}
}
var isFirstClick = true
@IBAction func checkBoxTapped(_ sender: UIButton) {
if isFirstClick{
checkBoxButton1.setImage(#imageLiteral(resourceName: "id"), for: .normal)
UserDefaults.standard.set(true, forKey: "checkBoxSave01")
ifFirstClick = false
}else{
checkBoxButton1.setImage(#imageLiteral(resourceName: "phone"), for: .normal)
UserDefaults.standard.set(false, forKey: "checkBoxSave01")
isFirstClick = true
}
}
单击按钮checkBoxSave01
之前,键值将为true,直到删除该应用程序为止。