3

私の場合、複数のビューを動的に作成しましたtextViews。私は彼らにIDを与えました。textViewsi が存在するすべての IDを選択する必要があるのは何ですかslide my finger。たとえば、A And B というテキストビューがあり、指を A から bi にスライドすると、ID が配列に保存されます。現在、私はタッチを学んでいます。実装方法がわかりません。

よろしくお願いします

  OnTouchListener MyOnTouchListener = new OnTouchListener(){ 
          public boolean onTouch(View v, MotionEvent event) 
          {
              Drawable d = getResources().getDrawable(R.drawable.small_corners);
              switch(event.getAction() & MotionEvent.ACTION_MASK){
                    case MotionEvent.ACTION_DOWN:
                           vibe.vibrate(20);


                               id.add(v.getId());   
                               TextView vv = (TextView) v;
                               val.add(vv.getText().toString()); 
                               vv.setBackgroundDrawable(d);
                               String str = "";



            //A pressed gesture has started, the motion contains the initial starting location.
            return false;
           case MotionEvent.ACTION_POINTER_DOWN:
            //A non-primary pointer has gone down.
            break;
           case MotionEvent.ACTION_MOVE:
            //A change has happened during a press gesture (between ACTION_DOWN and ACTION_UP).
               int check = 0;
               for (int i = 0; i < id.size(); i ++)
               {
                   if (id.get(i) == v.getId())
                       check = 1;
               }
               if (check != 1)
               {
                   id.add(v.getId());
                   vv = (TextView) v;
                   val.add(vv.getText().toString()); 
                   vv.setBackgroundDrawable(d);
               }
            return false;
           case MotionEvent.ACTION_MASK:
                //A change has happened during a press gesture (between ACTION_DOWN and ACTION_UP).

                break;
           case MotionEvent.ACTION_OUTSIDE:
                //A change has happened during a press gesture (between ACTION_DOWN and ACTION_UP).

                break;


           case MotionEvent.ACTION_UP:
            //A pressed gesture has finished.

              break;

           case MotionEvent.ACTION_POINTER_UP:
            //A non-primary pointer has gone up.

            break;
           }

           return false;
          }
         };
4

2 に答える 2

0

私が理解したことから、これを試してください。onTouchlistnerこのリスナーをすべてのに実装して設定します。これTextViewonTouch()行うには、次のようにします。

public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    if(event.getAction() == MotionEvent.ACTION_MOVE){
            //SAVE YOUR VIEWS ID//
            someArray[index] = ((TextView)v).getId()) 
            return true;
     }
     return false;
}

ACTIONS別のを試してみてくださいMotionEvent

于 2012-05-22T15:47:08.303 に答える
0

ACTION_HOVER_ENTERと ACTION_HOVER_EXITを試しましたか? それはうまくいくかもしれません。onGenericMotionEventのドキュメントの例を参照してください。

于 2012-05-22T15:45:18.447 に答える