Метод startActivity (Intent) не определен для типа? - PullRequest
0 голосов
/ 12 августа 2011

Так что я пытаюсь начать деятельность, нажав виджет.Я продолжаю сталкиваться с ошибкой «Метод startActivity (Intent) не определен для типа Фото», любая помощь очень ценится!Мой код класса ниже:

package com.natehoch96.widgets.iOS;

import android.appwidget.AppWidgetProvider;
import android.content.Intent;


public class Photos extends AppWidgetProvider {

    Intent myIntent = new Intent(android.provider.Settings.ACTION_SETTINGS);
    {startActivity(myIntent); }

}

Ответы [ 2 ]

1 голос
/ 12 августа 2011

Вам необходимо реализовать методы onUpdate () и onReceive () в вашем классе AppWidgetProvider, что-то вроде этого:

public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
    int[] appWidgetIds) {
    final int N = appWidgetIds.length;
    for (int i=0; i<N; i++) {
        int appWidgetId = appWidgetIds[i];

        //Get the views for your widget layout
        RemoteViews views = new RemoteViews(context.getPackageName(), 
            R.layout.my_widget);

        //Create a pending intent for a widget click
        Intent intent = new Intent(context, Photos.class);
        intent.setAction("PhotosAction");
        PendingIntent pendingIntent = 
            PendintIntent.getBroadcast(context, 0, intent, 0);
        views.setOnClickPendingIntent(R.id.widget_click_view, pendingIntent);

        appWidgetManager.updateAddWidget(appWidgetId, views);
    }
}

Затем напишите свой метод onReceive () для получения ожидающего намерения и запуска соответствующего действия:

public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);

    if (intent.getAction().equals("PhotosAction") {
        //Received photos action action, start your target activity
        Intent i = new Intent(android.provider.Settings.ACTION_SETTINGS);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
}
0 голосов
/ 12 августа 2011

В какой метод вы поместили этот код? AppWidgetProvider не имеет метода startActivity(). Вам нужно Context для этого. Несколько методов обратного вызова AppWidgetProvider предоставляют вам доступ к Context объекту, но все зависит от того, что вы собираетесь делать.

Предлагаю вам взглянуть на документацию по Android для разработчиков на AppWidgets здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...