Android ImageView's onClickListener funktioniert nicht

Ich habe ein ImageView, für das ich den onClickListener implementieren wollte. Aber wenn ich auf das Bild klicke, passiert nichts. Event der Logcat zeigt keine Fehler an.

Im Folgenden ist meine Import-Anweisung:

  • Android WebView lädt keine JavaScript-Datei, aber Android-Browser lädt es gut
  • Ist eine "Globals" -Klasse mit statischen Variablen in Android sicher?
  • Programmgesteuert ausführen Touch-Ereignis in Android
  • Android-Swiping, mit ViewPager ohne Tabs
  • Widget erscheint nicht in der Widget-Liste
  • IabHelper PurchaseFinishedListener
  • import android.view.View.OnClickListener; 

    Im Folgenden ist mein Layoutcode für das Bild:

     <ImageView android:id="@+id/favorite_icon" android:src="@drawable/small_star" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|right" android:paddingTop="63sp" android:paddingRight="2sp" /> 

    Im Folgenden ist der Code in meiner Aktivität, die den Event-Handler für onClickListener definiert:

     ImageView imgFavorite = (ImageView) findViewById(R.id.favorite_icon); imgFavorite.setClickable(true); imgFavorite.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.i(SystemSettings.APP_TAG + " : " + HomeActivity.class.getName(), "Entered onClick method"); Toast.makeText(v.getContext(), "The favorite list would appear on clicking this icon", Toast.LENGTH_LONG).show(); } }); 

    Bin ich etwas fehlt Jede Hilfe wäre willkommen.

    Danke im Voraus.

  • ProgressBar unter Action Bar
  • Importiere jar bibliotheken in android-studio
  • Unterschied zwischen Aktivität und FragmentActivity
  • Wie man Audiodatei in android spielt
  • Wie programmgesteuert erzwingen bluetooth Niedrigenergie Service Entdeckung auf Android ohne Cache zu verwenden
  • Wie kann ich alphabetisch sortieren und dabei die Groß- / Kleinschreibung ignorieren?
  • 10 Solutions collect form web for “Android ImageView's onClickListener funktioniert nicht”

    Kannst du das probieren und mir sagen, was passiert? :

     ImageView imgFavorite = (ImageView) findViewById(R.id.favorite_icon); imgFavorite.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(YourActivityName.this, "The favorite list would appear on clicking this icon", Toast.LENGTH_LONG).show(); } }); 

    Oder du solltest das hinzufügen:

     imgFavorite.setClickable(true); 

    OK,

    Ich habe es geschafft, diese heikle Frage zu lösen. Die Sache war wie ich war mit FrameLayout . Ich weiß nicht, warum, aber es kam mir in den Sinn, dass die Ikone hinter einer anderen Ansicht versteckt werden könnte.

    Ich habe versucht, die Ikone am Ende meines Layouts zu setzen und jetzt bin ich in der Lage, den Toast sowie das Log .

    Vielen Dank, dass Sie sich Zeit genommen haben, das Problem zu lösen. War sicherlich schwierig ..

    Versuchen Sie, den Kontext anstelle des Anwendungskontextes zu übergeben (Sie können auch eine Protokollanweisung hinzufügen, um zu prüfen, ob die onClick Methode jemals ausgeführt wird):

     imgFavorite.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.d("== My activity ===","OnClick is called"); Toast.makeText(v.getContext(), // <- Line changed "The favorite list would appear on clicking this icon", Toast.LENGTH_LONG).show(); } }); 

    Nun, meine Lösung war eine andere, oder sagen wir mal, der Bug war:

    Ich hatte einfach eine andere Bildansicht mit der gleichen ID in einem anderen <included /> zweimal eingekapselten XML-Layout, das vor dem gefunden wurde, das ich auf den Klick reagieren wollte. Lösung: Gib einer von ihnen eine andere …

    Hatte das gleiche Problem, danke für den Framelayout Tipp! Ich verwendete zwei überlappende Bilder in einem framelayout (das eine oben war eine Alpha-Maske, um die Wirkung von weichen Grenzen zu geben)

    Ich setze in das xml android:clickable="true" für das Bild wollte ich den onClickListener starten und android:clickable="false" zur alpha Maske.

    Add android: onClick = "clickEvent" zu deiner Bildansicht .

     <ImageView android:id="@+id/favorite_icon" android:src="@drawable/small_star" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|right" android:paddingTop="63sp" android:paddingRight="2sp" android:onClick="clickEvent" /> 

    In deiner Aktivität kannst du eine Methode mit dem gleichen Namen erstellen (clickEvent (View v) ), und das ist es! Sie können das Protokoll und den Toasttext auch sehen.

     public void clickEvent(View v) { Log.i(SystemSettings.APP_TAG + " : " + HomeActivity.class.getName(), "Entered onClick method"); Toast.makeText(v.getContext(), "The favorite list would appear on clicking this icon", Toast.LENGTH_LONG).show(); } 

    Eigentlich habe ich gerade imgView.bringToFront(); Und es hat geholfen

    Für innere Klassen, um die Referenz der Aktivität zu übergeben, schaffe ich in der Regel eine Referenz der Aktivität in onCreate () und mache es als Mitglied. Da innere Klassen Zugang zu Mitgliedern der Elternklasse haben, kannst du deine Aktivität und damit ihren Kontext erobern:

     class MyClass extends Activity{ private Activity thisActivity; @Override protected void onCreate(Bundle savedInstanceState) { thisActivity = this; } } 

    Ich hoffe, das hilft.

    Ich habe einen OnClickListener für ImageView als OnClickListener für eine Schaltfläche definiert und es scheint gut zu funktionieren. Hier war was ich hatte Bitte versuchen Sie es uns, wenn es nicht funktioniert.

     final ImageView imageview1 = (ImageView) findViewById(R.id.imageView1); imageview1.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { try { Log.i("MyTag","Image button is pressed, visible in LogCat");; } catch (Exception e) { Log.e(TAG, e.toString()); } } }); 

    Überprüfen Sie, ob andere Ansicht die Eigenschaft match_parent oder fill_parent , diese Eigenschaften können Ihre ImageView die in Ihrem RelativeLayout Auf die Art und Weise, die akzeptierte Antwort funktioniert nicht in meinem Fall.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.