复选框首选项问题

时间:2014-01-10 18:10:21

标签: java android

我有点问题。如你所知,

     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时,如何存储“点击”?

谢谢。

1 个答案:

答案 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());