❶ android按钮onclick事件是不是只能重写一次我每个按钮都重写一次好像立马死机,不可以吗新手勿喷谢谢
不是只能重写一次的,因为你的setcontentview不在oncreate里面,你学过生命周期吧,你在自定义的方法里,这样是无法刷新布局的,这样写是不对的
另外死机是啥回事,写代码还会死机?
你要实现按下按钮切换布局的话,要在oncreate里面写才可以
❷ android按钮监听器OnClick()的参数问题
包导错了,onclickListener是有同名的,你实现的dialogInterface的,不是view的
你把import android.content.DialogInterface.OnClickListener
替换为 import android.view.View.OnClickListener
❸ android开发如何实现onclickListener或navigationview按钮点击事件当用户按一次按钮相当于按两次按钮
可以通过时间间隔控制不让用户频繁点击。
1、定义一个变量,记录上一次单击的时间
❹ android中注册一个按钮的onclicklistener监听事件和直接用onclick方法(在xml中写onClick),有什么区别
没有区别,如果你一定说有区别的话我可以这样给你解释。
其实一共有三种方式:
1.直接setOnClickListener.
如果你的activity中只有少量的三两个按钮 适合使用
2.implement OnClickListener 实现这个接口
这适合多个按钮,比如计算器、虚拟键盘等 使用这个可以减少代码量,直接根据按钮的ID去添加事件
3. 在xml中写onClick
这可以使你的代码很清晰,你可以把所有的按钮事件写在一个文件里面,想用的时候可以在xml文件里直接调用 使代码看上去更有层次感。
三种方式各有利弊,根据情况选择使用。
❺ android 重写onClick()方法,总出错!
1、注意实现的接口类的包路径是View,别实现错了
2、如果onClick不是自动生成,的注意返回值和参数是否和接口定义一致
3、onClick中的实现逻辑是否出错。
正确示例:
java">Buttonbuttontest=(Button)findViewById(R.id.button1);//获取一个button
buttontest.setOnClickListener(newView.OnClickListener(){//设置监听,注意这里是View包下的
@Override
publicvoidonClick(Viewv){//包没搞错,onClick自动生成就不会出错了。
//TODOAuto-generatedmethodstub
Log.i("TEST","buttononClick");
}
});
❻ android 在xml中onclick和setonclicklistener的区别
这两个功能都一样,只不过,<Button android:onClick="xxxx">这种形式,我一般是用在一个button在很多地方都用到的时候,比如界面左上角的一个返回按钮,很多界面都需要,定义一个界面基类,里面定义一个返回操作的方法,然后把这个button单独写在一个layout里面,,用的时候直接把这个layout include到布局里面就可以了,,,后面代码形式注册监听,一般是在同一个类里面有很多按钮或者控件需要添加OnClick事件,可以只定义一个OnClickListener,然后在里面判断是哪一个控件,然后做对应的操作,,,
简单的说前者是对于同一个按钮,可以重复使用的不同的地方,,,,后者是在同一个地方对不同控件的同一事件进行区分操作,,,我一般是这么用的,,,,
❼ android onclick是怎样实现的
Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
TextView textview = (TextView)findViewById(R.id.textView1);
textview.setText("Button");
}
});
这种方式用findviewbyid通过id实例化出来这个button,然后通过设置button的listener监听对象,并同时实现接口OnClickListenter的OnClick()方法。这种方式的代码量不多,但是在java中,面向对象的思想,关于耦合,模块化它达不到。代码堆叠在一起,比较臃肿。
❽ android button按钮返回什么给onclick
Button.setOnClickListener(mGoBack);
public OnClickListener mGoBack = new OnClickListener() {
public void onClick(View v) {
finish();
}
};
要返回上一个activity,只需结束当前的activity
❾ 怎样在android中设置点击按钮实现页面跳转
首先:
建立要跳转的Activity,并在清单文件注册。这里假设注册的活动为NextActivity
其次
布局(例如main,xml):加个Button,并加上id,如button1
代码里:
首先声明Button的变量:private Button bn;(声明在OnCreat方法外面)
然后绑定:bn=(Button)findViewById(R.id.button1);
然后弄一个监听,实现匿名内部类
bn.setOnClickListener(new Button.OnClickListener(){//创建监听
public void onClick(View v) {
Intent inten=new Intent(MainActivity.this,NextActicity.class);
startActivity(intent);
}
});
当然 如果你嫌匿名内部类太麻烦,也可以在按钮中写一个android:onClick="onclick"事件来实现
代码里加
public void onclick(View v){
Intent inten=new Intent(MainActivity.this,NextActicity.class);
startActivity(intent);
}
这样也行
❿ android 中怎样给按钮添加点击事件
xml文件代码如下:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" />
四种方法分述如下:
匿名内部类:
public class TestButtonActivity extends Activity {
Button btn1, btn2;
Toast tst;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(TestButtonActivity.this, "111111111", Toast.LENGTH_SHORT);
tst.show();
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(TestButtonActivity.this, "222222222", Toast.LENGTH_SHORT);
tst.show();
}
});
}
}
自定义单击事件监听类:
public class TestButtonActivity extends Activity {
Button btn1, btn2;
Toast tst;
class MyClickListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(TestButtonActivity.this, "111111111", Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst = Toast.makeText(TestButtonActivity.this, "222222222", Toast.LENGTH_SHORT);
tst.show();
break;
default:
break;
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(new MyClickListener());
btn2.setOnClickListener(new MyClickListener());
}
}
Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理
public class TestButtonActivity extends Activity implements OnClickListener {
Button btn1, btn2;
Toast tst;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT);
tst.show();
break;
default:
break;
}
}
}
最后一种是我今天看到的一种写法,在XML文件中“显示指定按钮的onClick属性,这样点击按钮时会利用反射的方式调用对应Activity中的click()方法”
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button2" />
这里在输完android:的时候按下 Alt+/ 会有 onClick 属性的提示, 但输入到 android:onClick=“ 的地方按下 Alt+/ 并没有提示 onClick 选项,让我突然觉得这里好像有点问题。
public class TestButtonActivity extends Activity {
Button btn1, btn2;
Toast tst;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
}
// 注意 这里没有 @Override 标签
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT);
tst.show();
break;
default:
break;
}
}
}
这种写法整个代码中都不用声明button就可以实现button的单击事件。
以上就是四种实现按钮单击事件的方法。
粗略总结一下,就是按钮少的时候用匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类的。
按钮多的情况我还是选择第三种方法,方便。
关于第四种方法,我感觉最方便,但看了很多代码还是觉得写法不够大众化,感兴趣的朋友可以对此研究研究。相信会有不少收获。