Android:设计一个具有3个选项的菜单程序,单击每个选项时分别跳转到3个不同的页面。
16lz
2021-01-26
1.界面设计
2.原理
先设计一个选项菜单,再使用Intent组件进行页面的切换,结合Bundle类在Activity页面之间传递数据。
3.源码
(1)MainActivity.java
package com.example.tanjy.ex3_3;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.content.Intent;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;public class MainActivity extends AppCompatActivity { TextView txt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txt=(TextView)findViewById(R.id.text1); } //初始化菜单 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); //添加菜单项,组号,id,排序号,标题 menu.add(1,1,1,"菜单项1"); menu.add(1,2,2,"菜单项2"); menu.add(1,3,3,"菜单项3"); return true; } //监听菜单项 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ //响应每个菜单项(通过菜单的id) case 1: jump2(item.getTitle().toString()); break; case 2: jump3(item.getTitle().toString()); break; case 3: jump4(item.getTitle().toString()); break; default: //对于没有处理的事件交给父类来处理 return super.onOptionsItemSelected(item); } return true; } public void jump2(String t){ //创建Intent对象并指定切换页面 Intent intent=new Intent(); intent.setClass(MainActivity.this,secondActivity.class); //创建Bundle对象,存放“键-值”对数据 Bundle bundle=new Bundle(); bundle.putString("text",t); //将Bundle对象传递给Intent intent.putExtras(bundle); //启动另一个Activity页面 startActivity(intent); } public void jump3(String t){ //创建Intent对象并指定切换页面 Intent intent2=new Intent(); intent2.setClass(MainActivity.this,thirdActivity.class); //创建Bundle对象,存放“键-值”对数据 Bundle bundle=new Bundle(); bundle.putString("text",t); //将Bundle对象传递给Intent intent2.putExtras(bundle); //启动另一个Activity页面 startActivity(intent2); } public void jump4(String t){ //创建Intent对象并指定切换页面 Intent intent=new Intent(); intent.setClass(MainActivity.this,fourthActivity.class); //创建Bundle对象,存放“键-值”对数据 Bundle bundle=new Bundle(); bundle.putString("text",t); //将Bundle对象传递给Intent intent.putExtras(bundle); //启动另一个Activity页面 startActivity(intent); }}
(2)activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
(3)secondActivity.java
package com.example.tanjy.ex3_3;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.content.Intent;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;import android.widget.Button;public class secondActivity extends AppCompatActivity { Button btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); //启动布局文件second.xml TextView txt2=(TextView)findViewById(R.id.text2); Bundle bundle=this.getIntent().getExtras(); //取得Intent中的Bundle对象 String str=bundle.getString("text"); //获取Bundle对象中的数据 txt2.setText(str); btn2=(Button)findViewById(R.id.btn2); btn2.setOnClickListener(new btnclock()); } //定义返回前一页面的监听接口事件 class btnclock implements OnClickListener { public void onClick(View v) { Intent intent2=new Intent(); intent2.setClass(secondActivity.this,MainActivity.class); startActivityForResult(intent2,0); //返回前一页 } }}
(4)second.xml
<?xml version="1.0" encoding="utf-8"?>
(5)thirdActivity.java
package com.example.tanjy.ex3_3;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.content.Intent;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;import android.widget.Button;public class thirdActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.third); //启动布局文件second.xml TextView txt3=(TextView)findViewById(R.id.text3); Bundle bundle=this.getIntent().getExtras(); //取得Intent中的Bundle对象 String str=bundle.getString("text"); //获取Bundle对象中的数据 txt3.setText(str); Button btn3=(Button)findViewById(R.id.btn3); btn3.setOnClickListener(new btnclock3()); } //定义返回前一页面的监听接口事件 class btnclock3 implements OnClickListener { public void onClick(View v) { Intent intent3=new Intent(); intent3.setClass(thirdActivity.this,MainActivity.class); startActivityForResult(intent3,0); //返回前一页 } }}
(6)third.xml
<?xml version="1.0" encoding="utf-8"?>
(7)fourthActivity.java
package com.example.tanjy.ex3_3;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.content.Intent;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;import android.widget.Button;public class fourthActivity extends AppCompatActivity { Button btn4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fourth); //启动布局文件second.xml TextView txt4=(TextView)findViewById(R.id.text4); Bundle bundle=this.getIntent().getExtras(); //取得Intent中的Bundle对象 String str=bundle.getString("text"); //获取Bundle对象中的数据 txt4.setText(str); btn4=(Button)findViewById(R.id.btn4); btn4.setOnClickListener(new btnclock4()); } //定义返回前一页面的监听接口事件 class btnclock4 implements OnClickListener { public void onClick(View v) { Intent intent4=new Intent(); intent4.setClass(fourthActivity.this,MainActivity.class); startActivityForResult(intent4,0); //返回前一页 } }}
(8)fourth.xml
<?xml version="1.0" encoding="utf-8"?>
(9)strings.xml
ex3_3 选项菜单 这是第1个页面 返回 这是第2个页面 这是第3个页面
(10)修改AndroidMainfext.xml配置文件,添加跳转关联,注册xin
修改targetSdkVersion用于显示菜单
4.运行结果截图
分别按菜单项1,菜单项2,菜单项3
更多相关文章
- Binder学习笔记(十二)—— binder_transaction(...)都干了什么?
- Android(安卓)USB使用
- Android(安卓)调用系统拍照 笔记 - 会说话的哑巴的个人页面 - 开
- Android之 Viewpager
- Android布局管理器-使用TableLayout表格布局管理器实现简单的用
- Android(安卓)如何快速定位当前页面是哪个Activity or Fragment
- Android(安卓)Notification详解
- (转载)Android(安卓)之最新最全的Intent传递数据方法
- 基于AndroidStudio开发的简单登陆页面制作