栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android中activity跳转按钮事件的四种写法

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android中activity跳转按钮事件的四种写法

具体实现代码:

public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
// 方法1. 采用实现OnClickListener接口的类 
((Button) findViewById(R.id.btn1)) 
.setonClickListener(new View.onClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity1.class); 
startActivity(intent); 
} 
}); 
// 方法2. 采用匿名内部类 
((Button) findViewById(R.id.btn2)) 
.setonClickListener(new View.onClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity2.class); 
startActivity(intent); 
} 
}); 
// 方法3. Activity直接实现OnClickListener接口 
((Button) findViewById(R.id.btn3)) 
.setonClickListener(new View.onClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity3.class); 
MainActivity.this.startActivity(intent); 
} 
}); 
// 方法4.标签直接标注触发事件 
((Button) findViewById(R.id.btn4)) 
.setonClickListener(new View.onClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity4.class); 
MainActivity.this.startActivity(intent); 
} 
}); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu; this adds items to the action bar if it is present. 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
// Handle action bar item clicks here. The action bar will 
// automatically handle clicks on the Home/Up button, so long 
// as you specify a parent activity in AndroidManifest.xml. 
int id = item.getItemId(); 
if (id == R.id.action_settings) { 
return true; 
} 
return super.onOptionsItemSelected(item); 
}

上面代码中:

1、我们建立的MainActivity类需要继承自Activity

2、需要覆写onCreate方法,并通过setContentView方法加载相应的layout(布局)文件

3、通过findViewById方法找到相应的控件(在layout布局文件中定义的控件)并绑定一个Click事件(Java中通过监听器实现,C#中通过委托实现)

4、可以通过Intent对象传递数据并跳转到其它的Activity

5、onCreateOptionsMenu和onOptionsItemSelected是添加和选中菜单项时的方法。

一下是分别四个activity的内容:

第一种:

public class ButtonActivity1 extends Activity { 
Button button; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button1); 
button = (Button) findViewById(R.id.btn1); 
button.setonClickListener(new MyListener()); 
} 
public class MyListener implements onClickListener { 
@Override 
public void onClick(View v) { 
Toast.makeText(ButtonActivity1.this, "这是事件的第一种写法,内部类定义事件", 2000).show(); 
} 
} 
}

第二种:

public class ButtonActivity2 extends Activity { 
Button button ; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button2); 
button = (Button)findViewById(R.id.btn1); 
button.setonClickListener(new View.onClickListener() { 
@Override 
public void onClick(View v) { 
Toast.makeText(ButtonActivity2.this, "这是事件的第二种写法,匿名内部类的形式", 2000).show(); 
} 
}); 
} 
}

第三种:

public class ButtonActivity3 extends Activity implements onClickListener { 
Button button; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button3); 
button= (Button)findViewById(R.id.btn1); 
button.setonClickListener(this); 
} 
@Override 
public void onClick(View v) { 
switch (v.getId()) { 
case R.id.btn1: 
Toast.makeText(ButtonActivity3.this, 
"这是事件的第三种写法,直接实现OnClickListener接口的OnClick方法", 2000).show(); 
break; 
default: 
Toast.makeText(ButtonActivity3.this, "没有触发", 2000).show(); 
break; 
} 
} 
}

第四种:

需要在layout布局文件xml中指定btnClickEvent方法。

 

上面的4种写法当中第3种方法相对用的更多一点。当一个activity当中有多个按钮需要触发click事件时,通过第3种写法更容易管理和维护按钮事件代码。

布局是很重要的一块内容,我将在下面的博客中进行讲解,这里简单提及一下。

我们用的是LinearLayout(线性布局,其它的还有相对布局、绝对布局等等),设置了Android:orientation属性值为vertical(垂直),依次从上往下开始显示控件。

其它3个布局文件跟这个内容一样,都是只放置了一个按钮。

activity_main.xml的配置如下(就简单的放置了4个按钮):

 

最终更重要的一步,需要在AndroidManifest.xml文件中配置注册Activity,完整的配置如下:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

这里面有一个需要注意的地方,



设置MainActivity为"主Activity",即启动时最先显示的是哪一个Activity。

下面的多个activity都需要在"清单文件"中注册,这样程序中才能找到这些Activity。

strings.xml文件配置的内容:

 
 
test 
Hello world! 
Settings 
按钮事件1 
按钮事件2 
按钮事件3 
按钮事件4 
按钮1 
按钮2 
按钮3 
按钮4 

当然你也可以直接在layout文件中写死,但是这样更利于维护,这也是Android开发所推荐的方法。

以上所述是小编给大家介绍的Android中activity跳转按钮事件的四种写法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/160980.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号