我有点问题。如你所知,
addPreferencesFromResource(R.xml.mypreference);
已弃用。如何存储复选框首选项,以便用户下次启动应用程序时可以看到该复选框?
总共诺布在这里。 我的活动有复选框:
package com.example.program;
import com.example.program.R;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.view.View.OnClickListener;
public class JourneyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.journey_select);
final CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox1);
if (checkBox.isChecked()) {
checkBox.setChecked(false);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我的program.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/menu1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".JourneyActivity" >
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2"
android:text="@string/done1"
android:textColor="@color/red" />
</RelativeLayout>
忽略xml文件中可能存在的错误。 那么,当用户点击活动中的checkBox1时,如何存储“点击”?
谢谢。
答案 0 :(得分:0)
将保存首选项保存为
//设置和获取偏好数据的方法
public void checkBoxSelected(boolean status){
SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.boolean("checked", status);
editor.commit();
}
public boolean getCheckBoxState(){
SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
preferences.getBoolean("checked", false);
}
//在复选框检查的侦听器上,实现它
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
checkBoxSelected(true);
} else {
checkBoxSelected(false);
}
}
然后在onCreate()中启动应用程序时,将您的首选项数据用作
yourCheckBox.setChecked());