【问题标题】:Android programming broadcastreceiverAndroid编程广播接收器
【发布时间】:2017-01-10 17:29:05
【问题描述】:

在我的应用程序中,我采用了两个文本字段,例如 picture。像“mr.x”这样的名称的一个文本字段是像生日这样的目的。

我通过以下代码使用广播接收器保存数据名称和用途:

 public void saveinfo(View view) {
        SharedPreferences sp = getSharedPreferences("alarmatspecifictime", Context.MODE_PRIVATE);
         SharedPreferences.Editor editor = sp.edit();
         editor.putString("name", nameinput.getText().toString());
        editor.putString("purpose",spinner.getSelectedItem().toString());
        editor.apply();
        makeText(this, "saved", LENGTH_LONG).show();

    }

现在我想要一条通知消息,使用来自广播接收器类的"Today is mr.x Birthday" 等保存的数据。我该怎么做?

【问题讨论】:

  • 你的问题到底是什么?不清楚。
  • 我已经获取了两个文本字段,一个是名称,另一个是目的我已经获取了一些脊椎数据我将名称和目的保存在我的 sharedpreference 中。现在我想从广播接收器类中检索数据和想在这里使用.setContentText()。在通知类中。

标签: java android broadcastreceiver


【解决方案1】:

我认为你只是缺少一小部分:

String restoredText;
String restoredname;

public void addNotification(Context context) {
    getPref(context);
    String myString = restoredText + " " + restoredname;
    ...
    .setContentText(myString)
    ...
}

public void getPref(Context context) {
    restoredText = sp.getString("purpose", "");
    restoredname = sp.getString("name", "");
}

【讨论】:

    【解决方案2】:

    你到底想在这里做什么,很不清楚,而且你分享的代码也没有直接意义。

    如果您使用 Spinner,那么可能有不止一个项目,所以问题可能是您使用共享首选项将所有项目保存在“目的”和“名称”键中。

    当插入具有相同键的数据时,共享首选项会覆盖。所以每次你使用 sp.putString("name",);以前的值将被覆盖,您将只有新值。

    为了获得更好和正确的答案,请将您的查询重新表述为代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多