7

私は持っButtonていTextViewます。最初にボタンをクリックすると、カウント値がインクリメントされ、TextView に表示されます。私がそうするために使用したコードは.

buttonDayPlus.setOnClickListener(new OnClickListener() 
{               
     @Override
     public void onClick(View v) 
     {
     count = count + 1;
         textView.setText(Integer.toString(count));
     }
}

しかし、今私が欲しいのは、ユーザーがボタンを押した場合、値を次々にインクリメントしてインクリメント値を表示し、textViewユーザーが手を上に動かすとすぐに...最終的なインクリメント値がに表示されることtextViewです。誰かが知っていれば、これを解決するのを手伝ってください

4

5 に答える 5

2

OnClickListenerの代わりに OnTouchListenerを使用する必要があります。

しかし、あなたの質問はあいまいです。ボタンが離されたときに値を 1 回だけインクリメントしたい場合は、次のようにします。

button.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
            count++;
        }
    }
};

ユーザーがボタンを押している間にカウントを増やしたい場合は、次のようにします。

button.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        count++;
        myTextView.setText("Click count: "+count);
    }
};

もちろん myTextView は、クリックを表示したいテキストビューです。

于 2012-08-22T10:32:06.603 に答える
0

@shaliniが答えたように正しいですが、要件によるとほとんど変更はありません

public class CustomTouchListener implements View.OnTouchListener {     
    public boolean onTouch(View view, MotionEvent motionEvent) {
    switch(motionEvent.getAction()){            
            case MotionEvent.ACTION_DOWN:
               count = count + 1;
               textView.setText(Integer.toString(count));
            break;          

           case MotionEvent.ACTION_CANCEL:             

           case MotionEvent.ACTION_UP:

                break;
    } 
        return false;   
    } 
} 
于 2012-08-22T11:01:00.567 に答える
0

このようなカスタムタッチリスナーを使用して、

public class CustomTouchListener implements View.OnTouchListener {     
    public boolean onTouch(View view, MotionEvent motionEvent) {
    switch(motionEvent.getAction()){            
            case MotionEvent.ACTION_DOWN:
           count = count + 1;
                break;          
            case MotionEvent.ACTION_CANCEL:             
            case MotionEvent.ACTION_UP:
          textView.setText(Integer.toString(count));
                break;
    } 
        return false;   
    } 
}

これらのリスナーをボタンに設定します。お役に立てますように。

于 2012-08-22T10:32:26.447 に答える