android studio 逆向传值 之二 activity之间跳转

发布于:2022-12-03 ⋅ 阅读:(199) ⋅ 点赞:(0)

关于我做的那个小东西,有以下几个内容:

1、optionmenu;
2、activity之间跳转;
3、radiobutton android:checked="true"(选中);
4、edittext cityID.setVisibility(EditText.VISIBLE)(设定可见);
5、switch;
6、各activity之间数据传送。


先分开讲,最后把整个demo发出来,上篇文章说了optionmenu,今天说“activity之间跳转”。

讲两个例子:1、按钮跳转。2、菜单跳转(我在项目里用到的)。其实这两个方法大同小异,只不过跳转代码放在位置不同而已。

方法一,按钮跳转:

这个很简单,两个activity+两个布局文件+一个按钮+几行关键代码就搞定。

1、新建一个项目(我定义的是activityJump),什么类型的无所谓。

2、新建两个activity,分别为:MainActivity(默认生成),SecondActivity(自己建的)

新建activity方法:java右键--new--activity--basic activity(哪个都行)如图:

第二个activity名字secondactivity。只有一个textview.

 两个布局文件。activity_main.xml内容:一个按钮,一个textview.如图:

代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是activity1"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/guideline3" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_begin="203dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

 其实第二个activity和布局可以什么都不改,暂时它只是起到显示的做用,能看到变化就行了。

关键:跳转代码

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button=(Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(MainActivity.this,SecondActivity.class);
                startActivity(intent);

            }

        });

    }

全部代码:

Mainactivity.java

package com.example.activityjump;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private TextView textView;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button=(Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(MainActivity.this,SecondActivity.class);
                startActivity(intent);

            }

        });

    }


}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是activity1"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/guideline3" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_begin="203dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

secondactivity.java

package com.example.activityjump;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class SecondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second2);
    }
}

activity_second.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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=".SecondActivity">

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是activity2"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

方法二:菜单跳转

菜单跳转其他部分完全一样,只不过没有按钮,是用菜单跳转的。看我上一篇文章:

android studio 逆向传值 之一 选项菜单(optionmenu)

只要修改onOptionsItemSelected(MenuItem item)就可以了。

代码如下:

public boolean onOptionsItemSelected(MenuItem item) {
        //通过item.getItemId()对不同选项进行不同的处理
        switch (item.getItemId())
        {
            case R.id.id_settings:
                //事件
                Intent intent = new Intent();
                intent.setClass(FullscreenActivity.this,settings.class);
                //startActivity(intent);
                startActivityForResult(intent,0);
                break;
        }
        return true;
    }

因为我这里只用一个菜单项,所以应该也可次这么写,但懒得改,这是多菜单的写法。修改好后,点击菜单就可以实现跳转了。

所有备忘都讲完后,会把包含全部功能的代码写出来,备忘,备查。