2017-05-26 139 views
-3

我需要一些帮助与我的android程序。我需要在每次触摸时出现几个TextView。 1st touch = TextView1,2nd touch = TextView2等。我试图在ACTION_DOWN之后用ACTION_POINTER_DOWN做它,但它在一次触摸中显示所有文本视图。Android开发:第一个触摸= TextView1,第二个触摸= TextView2等

public boolean onTouch(View v, MotionEvent event) { 

boolean inTouch = false; 

     int actionMask = event.getActionMasked(); 
     tv = (TextView) findViewById(R.id.textView3); 
     tv1 = (TextView) findViewById(R.id.textView4); 
     tv2 = (TextView) findViewById(R.id.textView5); 
     tv3 = (TextView) findViewById(R.id.textView6); 
     int pointerCount = event.getPointerCount(); 
     int downPI = 0; 
     switch (event.getAction()) { 
      case MotionEvent.ACTION_DOWN: // 1st touch 
       inTouch = true; 

      case MotionEvent.ACTION_POINTER_DOWN: // next touches 
         downPI = pointerCount; 
         switch (downPI) { 
          case 0: 
           tv.setVisibility(View.VISIBLE); 
           break; 
          case 1: 
           tv1.setVisibility(View.VISIBLE); 
           break; 
          case 2: 
           tv2.setVisibility(View.VISIBLE); 
           break; 
          case 3: 
           tv3.setVisibility(View.VISIBLE); 
           break; 

         } 
         break; 


     } 

      return false; 
+1

您在'ACTION_UP'检查,因为'ACTION_DOWN'被触发经常 – Denny

回答

0

尝试以下解决方案: -

只需添加以下线以上onCreate()(定义变量): -

int downPI = 0; 

而且下面一样,在onTouch代码注释: -

//    downPI = pointerCount; 

return false;之前的增量如: -

if(downPI < 3) 
     downPI++; 

    return false; 
+0

非常感谢,我只是在想pointerCount应与每个触摸 – Anastasiya

+0

没问题,改变它'值。有时,替代方式在编码方面更好。 –

相关问题