使用下面的代码示例将非静态变量 R 更改为静态变量。
public class MyActivity extends Activity {
// ...
public static class ViewHolder extends RecyclerView.ViewHolder {
private final TextView textView;
public ViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.my_text_view); //修改前
textView = (TextView) itemView.findViewById(com.example.myapp.R.id.my_text_view); //修改后
}
public void bind(String text) {
textView.setText(text);
}
}
}
具体来说,只需将代码中引用的 R 类的所有非静态字段更改为静态字段即可。因为静态字段可以从静态上下文中引用,这可以避免上述错误的发生。