在Android M中,我需要将ImageButton
设置为drawable文件夹中的特定资源。
哪个将在声明视图的MainActivity
中起作用。
我有second Activity
需要使用该方法调用类
使用switch语句选择正确的资源。
我无法将ImageButton的引用正确地引入到被调用的类中。
我正在使用构造函数在类中设置上下文并使ImageButton mRecordImageButton对象成为公共对象,但仍然具有对mRecordImageButton的对象错误的未解析引用。 (unable to resolve symbol
)。
这是该类中的代码。
在MainActivity
public ImageButton mRecordImageButton;
在ImageButtonProperties.java
类文件
package twistlogic.com.miwidget;
import android.app.Activity;
import android.content.Context;
import android.widget.ImageButton;
public class ImageButtonProperties {
Context context;
public ImageButtonProperties() {
this.context = context; // constructor
}
public void ImageButtonSym(EnumLists enumList) {
switch (enumList) {
case VIDEO_OFF:
(ImageButton) ((Activity)context).mRecordImageButton.setImageResource(R.drawable.ic_bluetooth_black_18dp);
break;
default:
}
}
}
感谢您的帮助。
/////////////////////////////////////////////// ///////////////////////////////
感谢您的帮助,我只是在学习,所以感谢您的帮助。 当我使用调试器检查时,现在正在调用构造函数,但是我仍然没有解析对该按钮的引用。
按照建议调用构造函数,我在setContentView
之后调用它的setContentView(twistlogic.com.miwidget.R.layout.activity_camera2_video_image); final ImageButtonProperties properties = new ImageButtonProperties((this));
在我的主要课程中 private ImageButton mRecordImageButton; 我也试过公开,但那也行不通了
我致电: properties.ImageButtonSym(AppButtonStates.VIDEO_REC_ON);
被叫类是
public class ImageButtonProperties { 上下文上下文;
public ImageButtonProperties(Context context) {
this.context = context; // constructor
}
public void ImageButtonSym(int appButtonStates) {
switch (appButtonStates) {
case AppButtonStates.VIDEO_REC_ON:
(ImageButton) ((Activity)context).mRecordImageButton.setImageResource(twistlogic.com.miwidget.R.mipmap.btn_video_online);
break;
}
}
}
我正在使用'如何从另一个活动中更改文本',但我仍然将mRecordImageButton作为未解析的引用。也许我不理解Context对象。我想如果我有上下文,那么视图中的所有对象都是可访问的。这是理解上的错误吗?
谢谢,
答案 0 :(得分:1)
你的构造函数缺少一个参数,它应该看起来像这样:
public ImageButtonProperties(Context context) {
this.context = context;
}
并在Activity中调用构造函数,如下所示:
ImageButtonProperties properties = new ImageButtonProperties(this);
现在的方式,你只是一无所获。如果皮棉没有给你一个警告,我会感到惊讶。