我想知道如何在广播接收器的android中检查是否选中了复选框

时间:2015-03-30 17:22:26

标签: android checkbox

我想知道在应用程序未运行时如何检查是否选中了复选框。请帮我。我正在打电话拦截器,而且我被卡住了。

当应用程序未运行时,如何检查是否选中了复选框。

4 个答案:

答案 0 :(得分:1)

Android提供SharedPreferences类,这是一个实用程序,可帮助您在应用程序内部内存中保存用户设置,并可通过提供应用程序上下文进行访问。

假设用户已选中复选框控件,您可以使用 SharedPreferences 实例保存该选项,并将其保存到磁盘上。

例如:

myCheckbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {

    SharedPreferences prefs = yourActivityContext.getSharedPrefences("user_prefs", Context.MODE_PRIVATE);
    SharedPreferences.Editor = prefs.edit(); //Create this instance in order to save data

    editor.putBoolean("checked", isChecked); //Store the checkbox value

    editor.commit(); //Call this to save the preferences to disk
   }

} );

然后在 BroadcastReceiver

@Override
public void onReceive(Context context, Intent data) {
    SharedPreferences prefs = context.getSharedPreferences("user_prefs", Context.MODE_PRIVATE);

boolean checkboxValue = prefs.getBoolean("checked", false); 
//The second argument provide a default value if you haven't saved that setting before.
}

答案 1 :(得分:0)

每次启动应用程序时,都会创建一个全新的程序实例。一旦应用程序终止,正在运行的实例不再存在,以便您检查其状态。

你需要做的是......

  1. 当程序关闭时(或当用户根据您的设计方式点击“保存”时)将设置存储在文件或数据库中。
  2. 当应用程序打开时,让它读取设置并使用其内容填充屏幕(例如,复选框)
  3. 如果你没有编写拥有该复选框的程序(原帖中不清楚),那么程序必须已经这样做了;否则,它在启动时无法重新填充屏幕。在这种情况下,您所要做的就是找出文件或数据库表存储您所需信息的内容,并找出如何从该位置提取所需数据。

答案 2 :(得分:0)

您可以在数据库或web api中存储复选框值,并通过Android Services类检查。

答案 3 :(得分:0)

使用SharedPreferences。在onCheckChangedListener中,只需使用与复选框关联的布尔值存储共享首选项。广播接收器应具有相同的上下文,因此您应该能够从那里访问共享首选项。