实现onclicklistener不起作用?

时间:2014-12-29 19:32:11

标签: java android eclipse onclicklistener

我试图实施onclicklistener,但它不能在我的手机或模拟器上工作。

这是代码:

package com.slaps.guess;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {
TextView tv;
Button one;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    one = (Button) findViewById(R.id.button1);
    tv = (TextView) findViewById(R.id.tvd);     
}
public void onClick(View v) {

    switch (v.getId()) {
    case R.id.button1:
        tv.setText("Anything");
        break;
    }

}
}

文本视图不会更改为任何内容。

注意:button1存在,我们的xml没有任何问题。 我想实施,因为我有很多按钮。

3 个答案:

答案 0 :(得分:2)

您的代码中缺少one.setOnClickListener(this)。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    one = (Button) findViewById(R.id.button1);
    one.setOnClickListener(this);
    tv = (TextView) findViewById(R.id.tvd);     
}

答案 1 :(得分:0)

在使用侦听器之前,您必须将其添加到您想要的对象中。 我想你想要按钮one

one.setOnClickListener(this)

之后使用one = (Button) findViewById(R.id.button1);

答案 2 :(得分:0)

您似乎错过了res/layout/activity_main.xml中所需的XML属性。确保它看起来像:

<Button
  android:id="@+id/button1"
  onClick="onClick"
/>

关键是您提供了onClick属性以及要调用的方法的名称。

但是,如果要以编程方式设置单击侦听器,则需要使用Button.setOnClickListener方法。如果这样做,您的方法签名将需要更改为:

one.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // Perform action on click   
                }
            });