android studioでテキストをクリックしたら"hallo"と表示が変更されるウィジェットを作ろうと思い、ネットにあったJavaで書かれたコードを参考に作ってみたのですが上手くいきませんでした。どこがおかしいのかを指摘していただけると有難いです。よろしくお願致します。
class AppWidget : AppWidgetProvider() { override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray ) { // There may be multiple widgets active, so update all of them for (appWidgetId in appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId) } } override fun onEnabled(context: Context) { // Enter relevant functionality for when the first widget is created } override fun onDisabled(context: Context) { // Enter relevant functionality for when the last widget is disabled } override fun onReceive(context: Context?, intent: Intent?) { super.onReceive(context, intent) if(intent?.action.equals("CLICK_WIDGET")){ val changeWidgetId=intent?.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,0) val views2=RemoteViews(context?.packageName,R.layout.app_widget) views2.setTextViewText(R.id.textView5,"hello") val widgetManager2=AppWidgetManager.getInstance(context) if (changeWidgetId != null) { widgetManager2.updateAppWidget(changeWidgetId,views2) } } } } internal fun updateAppWidget( context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int ) { val views :RemoteViews=RemoteViews(context.packageName,R.layout.app_widget) val intent = Intent() intent.setAction("CLICK_WIDGET") intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,appWidgetId) val pendingIntent = PendingIntent.getBroadcast(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT) views.setOnClickPendingIntent(R.id.textView5,pendingIntent) appWidgetManager.updateAppWidget(appWidgetId,views)
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.eigochamploo.widgetsample"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <receiver android:name=".AppWidget"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> <action android:name="CLICK_WIDGET"/> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/app_widget_info" /> </receiver> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。