4

を実装onTouchListenerして TextviewにMainActivity属性を付けていますが、画面が押されたときにメッセージポップアップが表示されません。OnTouchListenertv

主な活動

public class MainActivity extends Activity implements View.OnTouchListener
{
    TextView tv;    
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv=(TextView)findViewById(R.id.tv);
        tv.setOnTouchListener(this);
        tv.setText(R.string.hello);
    }

    public boolean onTouch(View v,MotionEvent event)
    {
        Toast.makeText(this,"onTouch",Toast.LENGTH_LONG).show();
        return true;
    }
}
4

4 に答える 4

1

これを試して、同意する場合は受け入れる

 tv.setOnTouchListener(new CustomTouchListener());

public class CustomTouchListener implements View.OnTouchListener {     
    public boolean onTouch(View view, MotionEvent motionEvent) {
    switch(motionEvent.getAction()){            
            case MotionEvent.ACTION_DOWN:
                // Action you you want on finger down.
  Toast.makeText(this,"onTouch",Toast.LENGTH_LONG).show();
                break;          
            case MotionEvent.ACTION_CANCEL:             
            case MotionEvent.ACTION_UP:
                // Action you you want on finger up
                break;
    } 
        return false;   
    } 
}
于 2012-10-06T05:19:45.253 に答える
0

onTouch メソッドを @override する必要があります。実装している onTouchListener を削除してから、正しいものをインポートするように再度記述してください。記述するまで機能しません。

@Override
public boolean onTouch(View v,MotionEvent event)
{
    Toast.makeText(this,"onTouch",Toast.LENGTH_LONG).show();
    return true;
} 
于 2012-10-06T07:24:03.533 に答える
0

うーん、onTouchListener() は、一部のユーザー タッチ入力しか受信しない場合があります。onClickListener() にして、動作が解決するかどうかを確認できますか?

ちなみに、あなたのコードをコンパイルして実行しましたが、問題なく動作します。onTouch() で Log.v() メッセージを出力して、onTouch() が呼び出されていることを確認できますか?

于 2012-10-06T00:23:08.563 に答える