2016-10-03 54 views
0
Button button = (Button)findViewById(R.id.button1); 

button.setOnTouchListener(new OnTouchListener() { 

    @Override 
    public boolean onTouch(MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      //Insert desired code here 
      return true; 
     } 
     return false; 
    } 
}); 

public void backtogreen(View view) { 
    Intent intent = new Intent(this, DisplayMessageActivity.class); 
    startActivity(intent); 
} 

如何修復此代碼? 我有一個錯誤:無法解析符號'setOnTouchListener'

  • 不能解析符號 'setOnTouchListener' - 爲setOnTouchListener
  • 無效的方法聲明;返回所需的類型 - 爲onTouchListener
  • 註解這裏不允許 - 爲@覆蓋上述公共布爾
  • 不能解析符號「事件」的博特「事件」
  • 不能從空的結果類型的方法返回一個值返回true並返回false

請幫忙!

回答

0

您的方法簽名不正確。試試這段代碼:

button.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (event.getAction() == MotionEvent.ACTION_DOWN) { 
       //Insert desired code here 
       return true; 
      } 
      return false; 
     } 
    }); 
+0

這是一個asignment,我想知道如何處理這些錯誤。 我應該如何編碼使「查看v」正確? – Rediner

+0

@Rediner其他答案應該已經修復了代碼中的所有問題。如果你想要點擊行爲,那麼使用'button.setOnClickListener()'。 – Shaishav

+0

你知道是否有可能用onTouchlistener「刷卡」一些按鈕,並使它們連續執行? – Rediner

4

你不能在類體中運行除原語賦值以外的代碼。你的代碼需要一些方法,比如onCreate

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button button = (Button) findViewById(R.id.button1); 
    button.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View view, MotionEvent event) { 
      if (event.getAction() == MotionEvent.ACTION_DOWN) { 
       //Insert desired code here 
       return true; 
      } 
      return false; 
     } 
    }); 
} 
+0

我的主要目標是讓按鈕像點擊一樣觸摸。 現在我與我的代碼糾錯:( – Rediner

0

使用下面的方法

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

Button button = (Button) findViewById(R.id.button1); 



     OnTouchListener m_onTouchListener = new OnTouchListener() { 
     @Override 

     public boolean onTouch(View p_v, MotionEvent p_event) { 

      if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      //Insert desired code here 
      return true; 
     } 
     return false; 
     } 
    }; 

    button.setOnTouchListener(m_onTouchListener); 

}