Android:设计一个具有3个选项的菜单程序,单击每个选项时分别跳转到3个不同的页面。

1.界面设计

Android:设计一个具有3个选项的菜单程序,单击每个选项时分别跳转到3个不同的页面。_第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



    

(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




    
    
    

(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




    
    
    

(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




    
    
    

(9)strings.xml


    ex3_3
    选项菜单
    这是第1个页面
    返回
    这是第2个页面
    这是第3个页面

(10)修改AndroidMainfext.xml配置文件,添加跳转关联,注册xin

        
        
        
        
        
        

修改targetSdkVersion用于显示菜单

4.运行结果截图

分别按菜单项1,菜单项2,菜单项3

Android:设计一个具有3个选项的菜单程序,单击每个选项时分别跳转到3个不同的页面。_第2张图片Android:设计一个具有3个选项的菜单程序,单击每个选项时分别跳转到3个不同的页面。_第3张图片Android:设计一个具有3个选项的菜单程序,单击每个选项时分别跳转到3个不同的页面。_第4张图片 

你可能感兴趣的:(android)