2017-08-09 45 views
0

在我的節目我正在使用此代碼:OnTouchListener的方法中

int value =100; 

View.OnTouchListener button1listener = new View.OnTouchListener() { 
@Override 
public boolean onTouch(View v, MotionEvent event) { 
    int action = event.getAction(); 
    if (action == MotionEvent.ACTION_DOWN) { 

     if (value==50) { 
      System.out.println("button1, value 50"); 
     } else if (value==100) { 
      System.out.println("button1, value 100"); 
     } else if (value==200) { 
      System.out.println("button1, value 200"); 

    } else if (action == MotionEvent.ACTION_UP) 
      System.out.println("No action"); 
    return false; 
} 
}; 

button1.setOnTouchListener(button1listener); 

它工作正常,但我想使它成爲許多按鈕,所以不是複製和粘貼,我想有一個方法爲了它。我試圖自己做,但我的解決方案是不正確的,我不知道我怎麼能做到這一點。下面的代碼顯示我的錯誤解所以基本上我想將這段代碼打包到一個方法中,然後用setOnTouchListener和其他參數調用它。

private void setListener(parameter1, String parameter2) { 
int value =100; 

View.OnTouchListener parameter1 = new View.OnTouchListener() { 
@Override 
public boolean onTouch(View v, MotionEvent event) { 
    int action = event.getAction(); 
    if (action == MotionEvent.ACTION_DOWN) { 

     if (value==50) { 
      System.out.println(parameter2 + "value 50"); 
     } else if (value==100) { 
      System.out.println(parameter2 + "value 100"); 
     } else if (value==200) { 
      System.out.println(parameter2 + "value 200"); 

    } else if (action == MotionEvent.ACTION_UP) 
      System.out.println("No action"); 
    return false; 
} 
}; 
} 
+1

工具'OnTouchListener()'在你的類和方法內檢查認爲,用戶點擊並做代碼,如果你想我可以創建一個詳細的答案。 –

+0

你把'parameter1'放在參數列表中而沒有類型...所以這個不會被編譯。另外,你後來重新定義了它 –

+0

@BrunoFerreira我想看到這個 – AidanSalvatore

回答

0

您可以使用一個接口,這樣

public class YourActivity extends AppCompatActivity implements View.OnTouchListener { 

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    int action = event.getAction(); 
    if (v.getId() == R.id.button1) { // touched button 1 

當你發現按鈕

findViewById(R.id.button1) 
    .setOnTouchListener(YourActivity.this); 
+0

它看起來比複製和粘貼好,謝謝 – AidanSalvatore