2017-01-25 5 views
0

ユーザーがイメージビューに触れるとドロアブルリソースが変更され、リリース時にデフォルトに戻ります。私は動作するはずのコードをオンラインでコピーしましたが、そうではありません。私が受け取ったエラーにコメントしましたタッチ時にイメージリソースを変更しようとした後、リリース時に戻す

final ImageView green = (ImageView) findViewById(R.id.Green); 
green.setOnTouchListener(new OnTouchListener() { //cannot resolve symbol setOnTouch... 
          //^^Invalid method declaration return type required 
    @Override 
    public boolean onTouch(View view, MotionEvent event) { //cannot resolve symbol view/event 
     switch (event.getAction()) { //cannot resolve symbol event 
      case MotionEvent.ACTION_DOWN: { //constant expression required 
       green.setImageResource(R.drawable.green_square); 
       break; 
      } 
      case MotionEvent.ACTION_UP: { //constant expression required 
       green.setImageResource(R.drawable.blank_square); 
       break; 
      } 
     } 
     return false; // cannot return a value of type void 
    } 
}); 
+0

ここでセレクタを使用しないのはなぜですか? –

答えて

2

としてあなたのセレクタを定義します。セレクタ上記のようにSRCを設定し、

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/green_square"/> 
    <item android:state_pressed="false" android:drawable="@drawable/blank_square"/> 
</selector> 

そして、あなたのレイアウトXMLインチ

+0

私はしましたが、何もしていません –

+0

アンドロイドを変更する必要がありました:clickable = "true" –

0

最初の推測として、私はあなたがそのコードに行くためにインポートステートメントが不足していると思います。

例:

import android.view.MotionEvent; 
import android.view.View.OnTouchListener; 
+0

何も変わっていません –

関連する問題