2016-02-25 195 views
0

嘿家伙我是Android的开发新手和项目,我必须实现一个按钮的监听器。 但不幸的是,他无法检测到我认为的按钮。 这里是Java代码:Android Button监听器实现

public class Touch extends AppCompatActivity implements OnTouchListener,OnClickListener { 


private button boutonCompteur = null; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 

    super.onCreate(savedInstanceState); 
    setContentView(R.id.Compteur); 
    boutonCompteur = (button) findViewById(R.id.Compteur); 
    boutonCompteur.setOnTouchListener(this); 
    boutonCompteur.setOnClickListener(this); 

} 

@Override 
public boolean onTouch(View v, MotionEvent event) 
{ 
    return true; 
} } 

这里是XML:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="appuyez ici pour compter votre nombre de touch" 
    android:id="@+id/Compteur" 
    android:height="130dp" 
    android:textColor="#1818e3" 
    android:textColorHighlight="#cd5555" 
    android:textSize="22dp" 
    android:textStyle="italic" 
    android:layout_marginTop="150dp" 
    android:layout_alignParentStart="true" /> 

谢谢您的回答:)

+1

您不需要将onTouch和onClick都添加到按钮。只是使用onClick –

+0

试试这个:http://stackoverflow.com/questions/25803727/android-setonclicklistener-method-how-does-it-work(setOnClickListner);或从官方文档:http://developer.android.com/reference/android/widget/Button.html – KickingLettuce

+0

感谢您的答案,这真的很有帮助!我学到的东西感谢你们:) – Matnako

回答

2

我将用一些视觉上的帮助回答你的问题,并确定为什么不工作 ... 看看下面并注意形象:

  1. 你需要一个布局来活动和这是不一样的按钮
  2. 你需要找到布局中的按钮,这是由你在xml文件中使用的id odne,并且不是相同的布局!
  3. 您需要设置分辩监听得到的onclick,Android已经为括号之间的OnClickListener接口
  4. 字按钮是一个铸件,(Android将尝试的东西转化为一类,因此类是类按钮,而不是变量的名称)
  5. 您在onClick中编写的所有代码是按下按钮后将执行的代码。

enter image description here


结论

以图像为参考,并在代码中实现它。

+0

感谢您的回答,这真的很有帮助,我学到的东西感谢你:) – Matnako

0

删除onTouch,只能使用onClick

删除此行

boutonCompteur.setOnTouchListener(this); 

,改变public boolean onTouch(View v, MotionEvent event)

public void onClick(View v) { 
      // Do whatever you want 
     } 

,改变private button boutonCompteur = null;private Button boutonCompteur;。 (我不认为在做按钮声明时你需要添加=null)。

+1

谢谢你的回答。我没有阅读整个安卓课程,所以我不知道我只需要onClick。无论如何,再次感谢这么快的答案:D – Matnako