Ich war Definieren und Verwenden eines benutzerdefinierten OnClickListener (d. H. MyOnClickListener
) in der Datei des Fragments, das ich im Moment verwendete.Verwenden des gleichen "OnClickListener" in verschiedenen Aktivitäten
Keeping das Schreiben von Code erkannte ich, dass ich die gleiche Hörer benötigt auch in einem anderen Fragment, die auch in eine andere Aktivität sein passiert ist.
Ich habe daher die Datei MyOnClickListener.java
Kopieren Sie den gesamten Code Ich war früher für sie in dem ersten Fragment verwenden, aber jetzt bekomme ich folgende Fehler:
kann nicht aufgelöst Methode ‚getActivity()‘
die Methode kann nicht ‚GetResources()‘
Hinweis lösen: ich lese auf Stackoverflow, dass eine Lösung nurSchreiben sein kann 0 anstelle von getActivity()
, aber in meiner Situation muss ich das gleiche in zwei verschiedene Aktivitäten verwenden. Was soll ich machen?
EDIT: Hier ist der Code von MyOnClickListener
Es hat nur eine Matrix von Symbolen angezeigt werden:
class MyOnClickListener implements View.OnClickListener {
private LabeledButton labeledButton;
MyOnClickListener(LabeledButton labeledButton) {
super();
this.labeledButton = labeledButton;
}
@Override
public void onClick(View view) {
Button iconButton = (Button) view;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // ERROR HERE
LayoutInflater layoutInflater = getActivity().getLayoutInflater(); // ERROR HERE
final View viewLayout = layoutInflater.inflate(R.layout.dialog_matrix_icons, null);
builder.setView(viewLayout);
builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Do nothing
}
});
final AlertDialog alertDialog = builder.create();
// Set-up listeners of icon button
Button imageButtons[][] = new Button[3][3];
int i;
int j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
Resources res = getResources(); // ERROR HERE
TypedArray icons = res.obtainTypedArray(R.array.listIcon);
int idDrawable = icons.getResourceId(i + 3 * j, 1); // ERROR HERE
icons.recycle();
LinearLayout grid = (LinearLayout) viewLayout;
LinearLayout row = (LinearLayout) grid.getChildAt(i);
imageButtons[i][j] = (Button) row.getChildAt(j); // Retrieve the right image in the grid
imageButtons[i][j].setBackgroundResource(idDrawable);
String nameIcon = getResources().getResourceEntryName(idDrawable); // ERROR HERE
ImageOnClickListener imageOnClickListener = new ImageOnClickListener(iconButton, alertDialog, idDrawable, nameIcon, labeledButton);
imageButtons[i][j].setOnClickListener(imageOnClickListener);
}
}
alertDialog.show();
}
}
bitte zeigen Sie Ihren Code –
@IntelliJAmiya getan vorbei! – Robb1