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/