Android 小部件似乎没有注册点击
我正在尝试构建一个带有图像按钮和文本视图的小部件,当按下图像按钮时,我希望它将文本从数组更改为随机字符串。我有我认为会起作用的东西,但它不会更新我的文本,也不知道为什么。我的imagebutton称为imagewidgeterica,我的textview称为widget1label 这是我的密码:Android 小部件似乎没有注册点击,android,android-widget,Android,Android Widget,我正在尝试构建一个带有图像按钮和文本视图的小部件,当按下图像按钮时,我希望它将文本从数组更改为随机字符串。我有我认为会起作用的东西,但它不会更新我的文本,也不知道为什么。我的imagebutton称为imagewidgeterica,我的textview称为widget1label 这是我的密码: package kevin.erica.box; import java.util.Arrays; import java.util.Random; import android.app.Pend
package kevin.erica.box;
import java.util.Arrays;
import java.util.Random;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.RemoteViews;
import android.widget.TextView;
public class Widget extends AppWidgetProvider {
private static final Random rgenerator = new Random();
private static final Random rgenerator2 = new Random();
private String[] myString1;
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
Resources res = context.getResources();
myString1 = res.getStringArray(R.array.myArray);
final int N = appWidgetIds.length;
Log.i("ExampleWidget", "Updating widgets " + Arrays.asList(appWidgetIds));
// Perform this loop procedure for each App Widget that belongs to this
// provider
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
// Create an Intent to launch ExampleActivity
Intent intent = new Intent(context, Widget.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
// Get the layout for the App Widget and attach an on-click listener
// to the button
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
views.setOnClickPendingIntent(R.id.imagewidgeterica, pendingIntent);
// To update a label
views.setTextViewText((R.id.widget1label, myString1[rgenerator.nextInt(myString1.length)]);
// Tell the AppWidgetManager to perform an update on the current app
// widget
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
}
package kevin.erica.box;
导入java.util.array;
导入java.util.Random;
导入android.app.pendingent;
导入android.appwidget.AppWidgetManager;
导入android.appwidget.AppWidgetProvider;
导入android.content.Context;
导入android.content.Intent;
导入android.content.res.Resources;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.ImageButton;
导入android.widget.remoteview;
导入android.widget.TextView;
公共类小部件扩展AppWidgetProvider{
专用静态最终随机生成器=新随机();
私有静态最终随机rgenerator2=新随机();
私有字符串[]myString1;
公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId){
Resources res=context.getResources();
myString1=res.getStringArray(R.array.myArray);
final int N=appWidgetIds.length;
Log.i(“ExampleWidget”,“更新Widget”+Arrays.asList(AppWidgetId));
//对属于此应用程序的每个应用程序小部件执行此循环过程
//提供者
对于(int i=0;i
舱单:
<receiver android:name=".Widget" android:label="Erica's Box">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/erica_info" />
</receiver>
/res/values/array.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="myArray">
<item>string 1</item>
<item>string 2</item>
<item>string 3</item>
<item>string 4</item>
<item>string 5</item>
</string-array>
</resources>
字符串1
字符串2
字符串3
字符串4
字符串5
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="myArray">
<item>string 1</item>
<item>string 2</item>
<item>string 3</item>
<item>string 4</item>
<item>string 5</item>
</string-array>
</resources>