Android Studio初学者关于按钮添加事件问题
用传统一点的方法,在MainActivity文件加入以下代码:Layout这么拖一个按钮和文本框:按道理讲这样就可以了,为什么模拟器一点就报错,APIDEMOStoped...
用传统一点的方法,在Main Activity文件加入以下代码:
Layout这么拖一个按钮和文本框:
按道理讲这样就可以了,为什么模拟器一点就报错,API DEMO Stoped!
我们可不可以这样:
@Overridepublic void onClick(View v) { TextView tex = (TextView) findViewById(R.id.textView); tex.setText("程序已经启动");}
直接写在onCreate外面,然后在Activity_Main.xml里面直接添加android:onClick="onClick";
我这样做了结果还是和上面一样。
RUN后成功:
模拟器里面一点按钮就这样(我的程序叫test): 展开
Layout这么拖一个按钮和文本框:
按道理讲这样就可以了,为什么模拟器一点就报错,API DEMO Stoped!
我们可不可以这样:
@Overridepublic void onClick(View v) { TextView tex = (TextView) findViewById(R.id.textView); tex.setText("程序已经启动");}
直接写在onCreate外面,然后在Activity_Main.xml里面直接添加android:onClick="onClick";
我这样做了结果还是和上面一样。
RUN后成功:
模拟器里面一点按钮就这样(我的程序叫test): 展开
1个回答
展开全部
安卓中实现Button监听有以下几种方式:
public class HelloActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnMethod01;
Button btnMethod02;
Button btnMethod03;
btnMethod01 = (Button)findViewById(R.id.button1);
btnMethod02 = (Button)findViewById(R.id.button2);
btnMethod03 = (Button)findViewById(R.id.button3);
//第一种方法:匿名类
btnMethod01.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
Toast.makeText(HelloActivity.this,R.string.method01
,Toast.LENGTH_SHORT).show();
}
});
//添加监听事件
btnMethod02.setOnClickListener(new button1OnClickListener());
}
//第二种方法:内部类实现 有两部 1.写内部类 2.添加监听事件
private class button1OnClickListener implements OnClickListener{
public void onClick(View v){
Toast.makeText(HelloActivity.this,R.string.method02,
Toast.LENGTH_SHORT).show();
}
}
//第三种方法:用xml方法配置,该名称要与 main.xml 中button03的
//android:onClick="OnClickButton03"的名字一样
public void OnClickButton03(View v){
Toast.makeText(HelloActivity.this,R.string.method03
,Toast.LENGTH_SHORT).show();
}
}
//其中Button3的xml应该这样写
<Button
android:onClick="OnClickButton03"
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/method03"/>
你应该是监听那里没有写对,不关写在OnCreate里或者外的问题。
public class HelloActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnMethod01;
Button btnMethod02;
Button btnMethod03;
btnMethod01 = (Button)findViewById(R.id.button1);
btnMethod02 = (Button)findViewById(R.id.button2);
btnMethod03 = (Button)findViewById(R.id.button3);
//第一种方法:匿名类
btnMethod01.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
Toast.makeText(HelloActivity.this,R.string.method01
,Toast.LENGTH_SHORT).show();
}
});
//添加监听事件
btnMethod02.setOnClickListener(new button1OnClickListener());
}
//第二种方法:内部类实现 有两部 1.写内部类 2.添加监听事件
private class button1OnClickListener implements OnClickListener{
public void onClick(View v){
Toast.makeText(HelloActivity.this,R.string.method02,
Toast.LENGTH_SHORT).show();
}
}
//第三种方法:用xml方法配置,该名称要与 main.xml 中button03的
//android:onClick="OnClickButton03"的名字一样
public void OnClickButton03(View v){
Toast.makeText(HelloActivity.this,R.string.method03
,Toast.LENGTH_SHORT).show();
}
}
//其中Button3的xml应该这样写
<Button
android:onClick="OnClickButton03"
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/method03"/>
你应该是监听那里没有写对,不关写在OnCreate里或者外的问题。
追问
好吧,我懂了,你写这么一大堆全是哪复制过来的且不说,关键是答非所问,我找到了答案,模拟器设置问题,一进入就Unfortunatety,API Demos has stoped!,重新设置了一下就OK了。
追答
……然而你问的是按钮监听我怎么知道你模拟器设置有问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |