android - findViewById 未定义

标签 android android-widget

Eclipse 将 findViewById(int) 标记为未定义;它对 getResources() 做了同样的事情,但我能够通过调用 context.getResources() 来解决这个问题(如下所示)并且似乎无法为 findViewById 找到类似的解决方法。这是代码:

package com.myapp.android.MyWidget;

import android.appwidget.AppWidgetProvider;
import android.appwidget.AppWidgetManager;
import android.content.Context;
import android.content.ComponentName;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.util.Log;
import android.view.View;
import android.widget.RemoteViews;
import android.widget.Button;
import android.os.Bundle;

public class MyWidget extends AppWidgetProvider {
 private static String[] states;

 @Override
 public void onEnabled(Context context) {
  final Button button = (Button) findViewById(R.id.widget_state_button);

  states = context.getResources().getStringArray(R.array.states);
 }

我是否需要为 findViewById 导入另一个包?提前致谢。

最佳答案

当您使用 AppWidgets 时,代码的工作方式大不相同。本质上,您需要使用 RemoteView 而不是传统的 Buttons 和 findViewByIds。看这个similar question有关如何编写 AppWidget 的链接。特别是 developer.com 教程的两个链接。

关于android - findViewById 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2896253/

相关文章:

android - 具有不同范围的模块

android - 我们如何设置列的内容以在表格布局中换行

Android-Widget : Changing ListView selector color using RemoteView

android - 当文本足够长时,TextView 会切断文本

java - 使用西方数字的货币格式

java - 将字符串发送到 Activity 中

Android Logcat 不显示时间戳,每行的其他信息

android - 在 Xamarin 中捏合缩放图像

android - 在 SurfaceView 扩展中将视频拉伸(stretch)到全屏

java - android中的默认微调器样式