我试图实施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没有任何问题。 我想实施,因为我有很多按钮。
答案 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
}
});