2016-05-27 10 views
1

イメージボタンがあるところに簡単なアプリケーションを作成しました。イメージボタンイベントが動作しない

画像ボタンをクリックしてトーストをしたいです。

私の問題は、その画像ボタンを見ることができますが、その画像ボタンをクリックしても何も起こりません。私はそのコードで問題を見つけることができません。 ここに私のコードです。ここで

は私のXMLファイルが

content_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageButton" 
     android:layout_centerVertical="true" 
     android:layout_centerInParent="true" 
     android:src="@drawable/myimage"/> 

</RelativeLayout> 

あるContentMain.java

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.ImageButton; 
import android.widget.Toast; 

public class ContentMain extends AppCompatActivity { 
    ImageButton imgButton; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.content_main); 
     imgButton =(ImageButton)findViewById(R.id.imageButton); 
     imgButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(getApplicationContext(),"You download is resumed",Toast.LENGTH_LONG).show(); 
      } 
     }); 
    } 


} 
+0

私はまた、あなたのコード内のすべてのエラーを見つけることができません。 'Toast.makeText'行に' getApplicationContext() 'の代わりに' ContentMain.this'を書いて、違いがあるかどうかを調べることをお勧めします。あなたは何の誤りもありませんよね?また、 'onClick'リスナーで' log'を試みて、その関数に入るかどうかを調べます: 'Log.i(" YOOOO "、" I'm here ");' – Vucko

+1

ブレークポイントを入れてデバッグするあなたのコード。 – meh

答えて

1

をあなたがあなた自身に最初

をデバッグする必要がありますが

があなたのXMLでこれを追加し、この方法を使用することができます

Javaクラスの
<ImageButton 
    android:clickable="true" 
    android:onClick="myClick" 
    /> 

その後

public void myClick(View v) 
{ 
Toast.makeText(ContentMain.this,"You download is resumed",Toast.LENGTH_LONG).show(); 
} 

クリーン再構築し、ファイル名を指定して実行

+1

アップロードした作業ファイル。誰もが私の問題のplz .. https://drive.google.com/file/d/0B6Ax58vO7SvZcm5va0xHeXdNWm8/view?usp=sharing –

+0

を解決することができませんあなたのコード 'MainActivity'がちょうど –

+1

主な活動でコードを完了し、それが感謝を働いていました。.. 。 –

0

私はOnClicklistenersにコンテキストを使用して機能を備えたトラブルの多くは、のためのメソッドを作成してみましたトーストをクリックしてから、次のようにクリックリスナーから呼び出す:

プライベート無効callToast()それは(私はあなたのコードを貼り付けた作品

ImgButton.setOnClicklistener(新しいOnClicklistener){

callToast() {

+1

クラス内のメソッドと匿名のクラスは、それほど重要ではありません –

+0

クリケットの人が大好きです:)常にそこにいます。歓声の仲間 – Vucko

+0

クリケット男は何ですか?^^? – Robinhiio

0

を{

はここ をあなたの関数のトーストを挿入}私のプロジェクトに)、おそらくあなたのプロジェクトをクリアしてみてください。

+0

あなたの答え?????? –

+0

はい。コードにエラーはなく、すべてが完全に機能します。 – Icero

+1

十分な担当者がいる場合は、問題を再現できないものとしてフラグを立てることができますが、これは自分自身で –

0

は、XMLに追加:

<ImageButton 
android:clickable="true" /> 

アクティビティ:

implements View.OnClickListener 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    ImageButton imgButton =(ImageButton)findViewById(R.id.imageButton); 
    imgButton.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.imageButton: 
      Toast.makeText(getApplicationContext(),"You download is resumed",Toast.LENGTH_LONG).show(); 
      break; 
    } 
} 
+1

Javaコードでオーバーライドする場合は、XMLからonClickを削除することができます。 –