1

解決策については、Deepaの回答を参照してください:)

StackOverFlow で提供されているすべてのソリューションを読みましたが、私の場合はどれもうまくいかないようです。問題は、アプリにいくつかのボタンがあり、ユーザーのアクションに対してすべて異なる反応を示すことです。たとえば、アプリを起動すると、2 つを除くすべてのボタンが無効になります。そこで、デフォルトのドローアブルを XML に設定しました。ファイルを開くと、それらはすべてクリック可能ですが、それらのいくつかは、押されたときに押されたままにする必要があります(私はそれを行いました)が、他のものは押されてから押されないようにする必要があります。ちなみに、すべてのボタンの背景が異なるため、セレクターは使用しません。ここにいくつかのプリントスクリーンがあります:

ここに画像の説明を入力

ここに画像の説明を入力

ご覧のとおり、デフォルトの状態と「チェックされた状態」(「これまでに」押された状態)を管理していますが、ボタンを押すだけのクリックされた状態を設定することはできません。アクションが終了すると、押されていない状態に戻ります。onClick はタッチ後に呼び出されることがわかっているため、機能しません。

4

1 に答える 1

2

これを試して..

button.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
            //change the button for pressed state..              
            button.setBackgroundResource(R.drawable.pressed);
        }       
    }

    if(event.getAction()==MotionEvent.ACTION_UP) {
        //After pressing the button again change the image for button as 
        button.setBackgroundResource(R.drawable.normal);
    }
});

お役に立てば幸いです...

于 2012-07-03T09:31:39.673 に答える