通过单击ConfigurationActivity中的按钮来更改小部件的背景图像

时间:2019-12-03 21:25:29

标签: android background widget sharedpreferences

我有一个小部件。单击后,将打开带有2个按钮的ConfigurationActivity。当单击其中一个按钮时,我想为小部件的背景设置某个可绘制对象。我为此使用SharedPreferences。除了活动和窗口小部件之间的共享之外,我代码中的所有内容似乎都可以正常工作-因此背景图片始终设置在R.drawable.p1上。

我正在创建我的第一个应用程序,但我真的无法确定这是一个非常愚蠢的问题还是一个非常愚蠢的问题,但是我真的看不到为什么我的小部件背景没有变化。

spreads_widget.xml:

d

SpreadsWidget.java:

script.Parent.MouseButton1Click:Connect(function()
	game.StarterGui.ScreenGui.Enabled = true
	script.Parent.Visible = false
end)

activity_configuration.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/widget_margin"
android:id="@+id/widget">

<ImageView
    android:id="@+id/backgroundImage"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY"/>

ConfigurationActivity.java:

public class SpreadsWidget extends AppWidgetProvider {

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    for (int appWidgetId : appWidgetIds) {
        //Widget opens ConfigurationActivity when clicked
        Intent intent = new Intent(context, ConfigurationActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.spreads_widget);
        remoteViews.setOnClickPendingIntent(R.id.widget, pendingIntent);

        //Shared Preferences
        SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
        String text = sharedPreferences.getString(TEXT, "");

        //Changes Widget's Background Image
        if(text=="celtic_spread"){
            remoteViews.setImageViewResource(R.id.backgroundImage, R.drawable.celtic_spread);
        }
        if(text=="future_love_spread"){
            remoteViews.setImageViewResource(R.id.backgroundImage, R.drawable.future_love_spred);
        }
        else remoteViews.setImageViewResource(R.id.backgroundImage, R.drawable.p1);

        appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
    }
}

0 个答案:

没有答案