带有共享偏好的Android小部件textview

时间:2014-06-14 09:47:32

标签: android widget textview sharedpreferences

我为我的应用制作了一个包含4个textview的小部件

这4个textview应该从sharepreferences

接收文本

小部件工作正常,但获取数据的问题

这是小部件类代码

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.widget.RemoteViews;
import android.widget.*;
import android.content.*;
import android.preference.*;
import android.gesture.*;

public class Widget extends AppWidgetProvider{
 TextView b95,b98,mred,mgreen;

public void onReceive(Context context, Intent intent)
{

    LoadPreferences();
    String action = intent.getAction();
    if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action))
    {

        RemoteViews views = new RemoteViews(context.getPackageName(),
                                            R.layout.widget);

        AppWidgetManager
            .getInstance(context)
            .updateAppWidget(
            intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS),
            views);
    }

}
private void LoadPreferences()
{
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    String p95 = sharedPreferences.getString("p2p95", "");
    String p98 = sharedPreferences.getString("p2p98", "");
    String pred = sharedPreferences.getString("p2pred", "");
    String pgreen = sharedPreferences.getString("p2pgreen", "");

    b95.setText(p95);
    b98.setText(p98);
    mred.setText(pred);
    mgreen.setText(pgreen);

}
}

首先,我在loadpreferences方法中遇到问题(他们说我不能用它)

其次我猜所有加载首选项都是错误的,它与widget一起使用

那么解决方案是什么

任何帮助??

1 个答案:

答案 0 :(得分:0)

String Harneet="hi";
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
  SharedPreferences.Editor editor = preferences.edit();
  editor.putString("Name",Harneet);
  editor.commit();

在您想要使用以下代码

之后的值
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    String p95 = sharedPreferences.getString("p2p95", "Harneet");