M
Madlip
Gast
Hallo Community,
ich versuch mich gerade an einen AppWidget und hab dabei folgendes Tutorial durch gearbeitet: Handling User Interaction with Android App Widgets, Page 2 - Developer.com
Hab das soweit aber noch ziemlich simple bei mir gehalten, sprich 4 Buttons und eine TextView die bei Klick einen anderen Text in der TextView anzeigen soll. Aber irgendwie erreicht mein AppWidget nie die onReceiver Methode wie es laut dem Tutorial sein sollte.
Wie gesagt ich denke das es an den Receiver mangelt, weiß aber nicht warum, weil ich es eigentlich soweit gemacht habe wie im obigen Toturial.
Hier nun der Code:
Und hier die Manifest:
hoffe das mir einer von euch helfen kann ...
beste grüße
Mad
ich versuch mich gerade an einen AppWidget und hab dabei folgendes Tutorial durch gearbeitet: Handling User Interaction with Android App Widgets, Page 2 - Developer.com
Hab das soweit aber noch ziemlich simple bei mir gehalten, sprich 4 Buttons und eine TextView die bei Klick einen anderen Text in der TextView anzeigen soll. Aber irgendwie erreicht mein AppWidget nie die onReceiver Methode wie es laut dem Tutorial sein sollte.
Wie gesagt ich denke das es an den Receiver mangelt, weiß aber nicht warum, weil ich es eigentlich soweit gemacht habe wie im obigen Toturial.
Hier nun der Code:
Code:
public class TestProvider extends AppWidgetProvider
{
private static String TAG = TestProvider.class.getName();
public static final String VALUE_ZERO= "com.test.testwidget.VALUE_ZERO";
public static final String VALUEONE = "com.test.testwidget.VALUEONE";
@Override
public void onEnabled(Context context)
{
Log.e(TAG, "onEnable");
super.onEnabled(context);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
super.onUpdate(context, appWidgetManager, appWidgetIds);
Log.e(TAG, "onUpdate anfang");
for (int i = appWidgetIds.length; --i >= 0;)
{
int appWidgetID = appWidgetIds[i];
PendingIntent pendingZero = makeZeroPendingIntent(context, "", appWidgetID);
PendingIntent pendingOne = makeOnePendingIntent(context, appWidgetID);
RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.sysinfo_main);
remoteView.setOnClickPendingIntent(R.id.btnPrevious, pendingZero);
remoteView.setOnClickPendingIntent(R.id.btnNext, pendingOne);
remoteView.setOnClickPendingIntent(R.id.btnThird, null);
remoteView.setOnClickPendingIntent(R.id.btnFourth, null);
appWidgetManager.updateAppWidget(appWidgetID, remoteView);
Log.e(TAG, "onUpdate Ende");
}
}
private PendingIntent makeZeroPendingIntent(Context context, String command, int appWidgetId)
{
Intent zeroIntent = new Intent();
zeroIntent.setAction(VALUE_ZERO);
zeroIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
Log.e(TAG, "makeZeroIntent");
return PendingIntent.getActivity(context, 1, zeroIntent, 0);
}
private PendingIntent makeOnePendingIntent(Context context, int appWidgetId)
{
Intent oneIntent = new Intent();
oneIntent.setAction(VALUEONE);
oneIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
Log.e(TAG, "make ONEIntent");
return PendingIntent.getActivity(context, 1, oneIntent, 1);
}
@Override
public void onReceive(Context context, Intent intent)
{
final String action = intent.getAction();
Log.e(TAG, "onReceive anfang" + action);
if (VALUE_ZERO.equals(action))
{
Log.e(TAG, "onReceive Zero");
RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.sysinfo_main);
remoteView.setTextViewText(R.id.textView1, "Zero");
AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID), remoteView);
}
if (VALUEONE.equals(action))
{
Log.e(TAG, "onReceive VALUEONE");
RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.sysinfo_main);
remoteView.setTextViewText(R.id.textView1, "VALUEONE");
AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID), remoteView);
}
super.onReceive(context, intent);
}
}
Und hier die Manifest:
Code:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.testwidget"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver android:name="TestProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:resource="@xml/test_appwidget" android:name="android.appwidget.provider"/>
</receiver>
<receiver android:name="TestProvider">
<intent-filter>
<action android:name="com.test.testwidget.VALUE_ZERO"/>
</intent-filter>
</receiver>
<receiver android:name="TestProvider">
<intent-filter>
<action android:name="com.test.testwidget.VALUEONE"/>
</intent-filter>
</receiver>
</application>
</manifest>
hoffe das mir einer von euch helfen kann ...
beste grüße
Mad