findViewById не определен для типа <имя моего класса здесь> в AppWidgetProvider - PullRequest
0 голосов
/ 27 октября 2011

Есть ли эквивалентная строка кода, которую я могу использовать для findViewById?Eclipse сообщает, что он не определен для типа в AppWidgetProvider.

Я пытаюсь настроить обработчик нажатия для кнопки.

public class WidgetProvider extends AppWidgetProvider implements OnClickListener{

    final Button buttonOnOff = (Button) findViewById(R.id.button_on_off);

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {

        /*
         * Set Click Listener
         */
        buttonOnOff.setOnClickListener(this);

        /*
         * The following 3 lines of code are required to display the widget on the screen.
         */
        RemoteViews remoteView = new RemoteViews(context.getPackageName(),
            R.layout.appwidget_layout);

        ComponentName myWidget = new ComponentName(context,
            WidgetProvider.class);
        appWidgetManager.updateAppWidget(myWidget, remoteView);

    }

    @Override
    public void onClick(View v) {
    }
}

1 Ответ

1 голос
/ 27 октября 2011

Код работает несколько иначе, когда вы используете AppWidgets.По сути, вам нужно работать с RemoteView, а не с традиционными кнопками и findViewByIds.См. связанный ответ для ссылок о том, как писать AppWidgets.В частности, две ссылки на учебники developer.com.

...