Я создал виджет в android, и он успешно работает, но теперь я хочу использовать в событии click для виджета, чтобы я мог открыть из него новую активность.
Помогите мне
Я создал виджет в android, и он успешно работает, но теперь я хочу использовать в событии click для виджета, чтобы я мог открыть из него новую активность.
Помогите мне
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
for (int i = 0; i < appWidgetIds.length; i++) {
int appWidgetId = appWidgetIds[i];
Intent intent = new Intent(context, TaskManagerActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.widget_layout, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
В widget.xml У меня есть корневой элемент LinearLayout с id widget_layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="10dip"
android:paddingLeft="10dip"
android:orientation="vertical">
Я использовал это:
// Create an Intent to launch ExampleActivity
Intent intent = new Intent(context, Mainpage.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
remoteViews.setOnClickPendingIntent(R.id.widget, pendingIntent);
Внутри вашего макета для этого конкретного виджета укажите
android:onClick="your method name inside your activity"
и в своей деятельности дайте:
public void methodname(View view) {
//give your intent code here
}
Примечание. Когда вы вызываете метод, подобный этому, ваш метод должен быть общедоступным и должен иметь объект View как параметр.