安卓

2019-03-29 安卓作业:实现菜单栏并每项跳转页面

2019-03-29  本文已影响0人  Daniel梁

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

思路:

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="28"
  />

修改targetSdkVersion,这个是项目创建的时候构建的。。修改代价比较大
2 : 我们可以添加一个按钮,用这个按钮去手动显示系统的menu菜单,手动调用 openOptionsMenu()去让他显示

下面看代码

MainActivity 的 Java

package com.example.switchbetweenthree;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = findViewById(R.id.showMenuBtn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openOptionsMenu();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
         super.onCreateOptionsMenu(menu);
         menu.add(1,1,1,"菜单项一");
         menu.add(1,2,2,"菜单项二");
         menu.add(1,3,3,"菜单项三");
         return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case 1:
                jump(item.getTitle().toString());
                break;
            case 2:
                jump(item.getTitle().toString());
                break;
            case 3:
                jump(item.getTitle().toString());
                break;
                default:
                    return super.onOptionsItemSelected(item);
        }
            return true;
    }

    public void jump(String value){
        Intent intent = new Intent();
        intent.setClass(MainActivity.this,SecondActivity.class);
        Bundle bundle = new Bundle();
        bundle.putString("text",value);
        intent.putExtras(bundle);
        startActivity(intent);
    }
}

Main的XML

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:gravity="center"
         android:orientation="vertical"
         >
          <Button
              android:id="@+id/showMenuBtn"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="显示菜单"
              android:textSize="40sp"
              />
     </RelativeLayout>

</android.support.constraint.ConstraintLayout>

Second的Java

package com.example.switchbetweenthree;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class SecondActivity extends Activity {
    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        textView = findViewById(R.id.text);
        Bundle bundle = this.getIntent().getExtras();
        String str = bundle.getString("text");
        textView.setText(str);
        Button back = findViewById(R.id.back);
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(SecondActivity.this,MainActivity.class);
                startActivityForResult(intent,0);
            }
        });
    }
}

Second的XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40sp"
        android:layout_gravity="center"
        />
    <Button
        android:id="@+id/back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="150dp"
        android:text="返回"
        android:textSize="40sp"
        />

</LinearLayout>

由于我们要使用Intent监听跳转,我们要在AndroidMainfext.xml添加跳转关联

在Application下面添加以下代码

 <activity android:name=".SecondActivity">
        </activity>

下面是demo图

屏幕快照 2019-03-29 上午9.02.56.png 屏幕快照 2019-03-29 上午9.03.08.png 屏幕快照 2019-03-29 上午9.03.15.png

Done~

上一篇 下一篇

猜你喜欢

热点阅读