我可以为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) {
}
}
答案 0 :(得分:1)
当您使用AppWidgets时,代码的工作方式会有所不同。基本上你需要使用RemoteView而不是传统的Buttons和findViewByIds。有关如何编写AppWidgets的链接,请参阅此related answer。特别是developer.com教程的两个链接。