In Android M, muss ich eine ImageButton
auf eine bestimmte Ressource im Zeichnungsordner festlegen. Welches wird was von der MainActivity
, wo die Sicht wurde deklariert.setImageResource für Bild Schaltfläche aus einer Klasse
Ich habe eine second Activity
, die eine Klasse mit der Methode aufrufen muss, um die richtige Ressource mit einer switch-Anweisung auszuwählen.
Ich kann den Verweis auf das ImageButton nicht korrekt in der aufgerufenen Klasse abrufen.
Ich verwende einen Konstruktor, um den Kontext innerhalb der Klasse festzulegen, und habe das ImageButton mRecordImageButton-Objekt public, aber immer noch den nicht aufgelösten Verweis auf Objektfehler für mRecordImageButton. (unable to resolve symbol
).
Hier ist der Code in der Klasse. im MainActivity
public ImageButton mRecordImageButton;
in der ImageButtonProperties.java
Klassendatei für jede Hilfe
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:
}
}
}
danken.
////////////////////////////////////////////// ////////////////////////////////
Vielen Dank für die Hilfe, ich lerne gerade so Ihre Hilfe ist geschätzt. Der Konstruktor wird jetzt aufgerufen, wenn ich mit dem Debugger überprüfe, aber ich habe immer noch und ungelösten Bezug auf die Schaltfläche.
Aufruf an den Konstruktor, wie Sie vorgeschlagen, ich habe es nach setContentView
setContentView (twistlogic.com.miwidget.R.layout.activity_camera2_video_image); final ImageButtonProperties properties = neue ImageButtonProperties ((this)); In der Hauptklasse habe ich private ImageButton mRecordImageButton; Ich versuchte auch öffentlich, aber das auch nicht
funktioniert hat mitIch nenne: properties.ImageButtonSym (AppButtonStates.VIDEO_REC_ON);
der gerufene Klasse ist
public class ImageButtonProperties { Context Kontext;
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;
}
}
}
ich als Leitfaden wurde mit ‚wie dem Text von einer anderen Aktivität ändern‘, aber ich habe immer noch die mRecordImageButton als unaufgelöste Referenz. Vielleicht verstehe ich das Context-Objekt nicht. Ich dachte, dass wenn ich den Kontext hätte, dass alle Objekte in der Ansicht zugänglich wären. Ist das ein Fehler beim Verständnis?
Danke,