For me I have a button widget with a button that is just suppose to launch a helloworld activity when I click it. I’ve tried following many posts online including this one, and yet the problem still there. I press the button, nothing happens. I am working on version 2.3 of android. Can someone point out what I am doing wrong?
My widget:
public class IconWidgetProvider extends AppWidgetProvider {
@Override
public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, final int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i=0; i<N; i++) {
final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
// first param is app package name, second is package.class of the main activity
final ComponentName cn = new ComponentName("com.followup","com.followup.FollowUpActivity");
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
final PendingIntent myPI = PendingIntent.getActivity(context, 0, intent, 0);
final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.icon_widget_layout);
views.setOnClickPendingIntent(R.id.image_in_widget, myPI);
final AppWidgetManager mgr = AppWidgetManager.getInstance(context); mgr.updateAppWidget(cn, views);
}
}
}
homescreeniconinfo.xml
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="0"
android:initialLayout="@layout/icon_widget_layout" >
</appwidget-provider>
icon_widget_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<Button android:name="@+id/image_in_widget"
android:contentDescription="@string/iconDescription"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight=".50"
android:clickable="true"
/>
</LinearLayout>
mainifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.followup"
android:versionCode="1"
android:versionName="1.0" >
.
.
.
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
.
.
.
<!-- Home icon widget -->
<receiver android:name="IconWidgetProvider"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/homescreeniconinfo" />
</receiver>
<activity
android:name=".FollowUpActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Have you tried adding the event handler to your button?
Perhaps I’m confused here as it’s been a while since I actually did some intense android programming, but from what I understand, this is what I’ve done to call an intent from another one in the past…
Paying extra attention to
Where “onClickFunction” would be a written method somewhere in your code that gets called when the button is clicked
EDIT
This is ripped straight from the HelloWorld android tutorial which I have compiled and successfully run on my 2.3 Android Phone in the past
this is the xml
this is in the main .java file
DisplayMessageActivity.class is the class that is essentially a new application (from your case I believe you want it to be a Hello World app)
so you would make an XML for that called application and change/rewrite the DisplayMessageActivity class to do whatever “HelloWorld”-ey stuff you want…