我想知道是否有人能告诉我如何检查来自其他活动的活动中的复选框。
我正在制作一个家庭作业应用程序,我想在已经完成的问题旁边打一个支票。
因此,第一个活动有一个问题列表,旁边是未选中的框。当您单击某个问题时,该应用会将您带到第二个活动。在第二个活动中,我想查看已完成的问题框。
答案 0 :(得分:0)
您应该使用SharedPreferences。在第一个活动中调用它:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.putBoolean("KEY", <your value>).apply();
和另一项活动类似:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean isTicked = prefs.getBoolean("KEY", <default boolean value>);
其中KEY可以是任何内容,例如,您的问题编号
答案 1 :(得分:0)
您应该使用intent和bundle逻辑在活动之间传递数据。(在大多数情况下)
在第一个活动中,无论何时创建第二个活动,都会传递数据。
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("checked",checkBox.isChecked());
startActivity(intent);
在第二项活动中,您使用以下方式接收数据:
Intent receivedIntent = getIntent();
boolean finalChecked = receivedIntent.getExtras().getBoolean("checked");
//now you can apply your logic with finalChecked variable
答案 2 :(得分:0)
您可以将已检查的检查问题保存到捆绑包中,并通过意图将其作为额外内容传递给您的第二个活动,并在第二个活动中从该意图中读取它
在你的第一个活动中做这样的事情
public class FirstActivity extends Activity {
public static final String EXTRA_CHECKED_QUESTION = "Checked Question";
// other codes here
private void startSecondActivity() {
String checkedQuestion = getCheckedQuestion(); // a method to get checked question
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra(FirstActivity.EXTRA_CHECKED_QUESTION, checkedQuestion);
startActivity(intent);
}
}
然后在你的第二个活动中
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstance) {
// other codes
String checkedQuestion = getIntent().getStringExtra(FirstActivity.EXTRA_CHECKED_QUESTION);
// do whatever you want with checkQuestion
}
}
请注意,您在FirstActivity中作为putExtra()方法的第一个参数传递的字符串应与您使用getStringExtra()在SecondActivity中检索额外参数的字符串相同,否则您无法检索传递的额外字符串在SecondActivity中。
另外,我没有在想法中写这些代码,因此可能存在语法错误
详细了解intent here