服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android 几种屏幕间跳转的跳转Intent Bundle

Android 几种屏幕间跳转的跳转Intent Bundle

2021-02-20 15:40Android开发网 Android

这篇文章主要介绍了Android 几种屏幕间跳转的跳转Intent Bundle,有需要的朋友可以参考一下

屏幕使用一个活动来实现,屏幕间是相互独立的,屏幕之间的跳转关系通过intent来实现。

屏幕间跳转分为以下几类:

1. 屏幕1直接跳转到屏幕2

      intent intent = new intent();

      intent.setclass(屏幕1活动名.this,屏幕2活动名.class);

      startactivity(intent);

      finish();   //结束当前活动

2. 屏幕1带参数跳转到屏幕2

   使用bundle来传参数。

   例子:猜拳游戏

   界面:

Android 几种屏幕间跳转的跳转Intent Bundle

Android 几种屏幕间跳转的跳转Intent Bundle

重要代码:

电脑的选择是随机的,本次联系的基本思路是,三个选项利用三个数字来代替,让电脑   随机生成一个数字,根据数字的不同来产生不同的结果。

 

复制代码 代码如下:


public void onclick(view v) {

 

                switch (radiogroup.getcheckedradiobuttonid()){

                case r.id.stone:

                    player = 0;

                    break;

                case r.id.scissors:

                    player = 1;

                    break;

                case r.id.textile:

                    player = 2;

                    break;

                default:

                    toast.maketext(mainactivity.this, "请选择", toast.length_long).show();

                    break;

                }

                skip();

            }

    //页面跳转

    private void skip(){

        intent intent = new intent();

        intent.setclass(mainactivity.this, resultmainactivity.class);

        bundle bundle = new bundle();

        bundle.putint("player", player);

        bundle.putint("computer", new random().nextint(3));

        intent.putextra("result", bundle);

        startactivity(intent);

    }

 

跳转之后,要接受参数:

 

复制代码 代码如下:


   bundle bundle = this.getintent().getbundleextra("result");

 

   int playerint = bundle.getint("player");

   int computerint = bundle.getint("computer");

 

猜拳游戏完整代码:

activity_first.xml代码 

复制代码 代码如下:


<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

 

    <textview
        android:id="@+id/textview1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请选择您要出的拳:"
        android:textsize="20dip" />
   

    <radiogroup
        android:id="@+id/quans"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <radiobutton
            android:id="@+id/shitou"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="石头"
            android:textsize="20dip" />

        <radiobutton
            android:id="@+id/jiandao"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textsize="20dip"
            android:text="剪刀" />

        <radiobutton
            android:id="@+id/bu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textsize="20dip"
            android:text="布" />
    </radiogroup>

    <button
        android:id="@+id/chuquan"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textsize="20dip"
        android:text="出拳" />

</linearlayout>

 

activity_second.xml代码

复制代码 代码如下:


<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

 

    <textview
        android:id ="@+id/show"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textsize="20dip"
        android:text="@string/hello_world" />

</linearlayout>

 

firstactivity.java代码

 

复制代码 代码如下:


package com.example.caiquangame;

 

import java.util.random;

import android.os.bundle;
import android.app.activity;
import android.content.intent;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
import android.widget.radiogroup;
import android.widget.toast;
import android.support.v4.app.navutils;

public class firstactivity extends activity {

 private button chuquan;
 private radiogroup quans;
 private int player;
    @override
    public void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_first);
        settitle("猜拳游戏");

        chuquan = (button)findviewbyid(r.id.chuquan);
        chuquan.setonclicklistener(mchuquanlistener);
        quans = (radiogroup)findviewbyid(r.id.quans);
    }

    private onclicklistener mchuquanlistener = new onclicklistener()
    {

  @override
  public void onclick(view arg0) {
   // todo auto-generated method stub
   switch(quans.getcheckedradiobuttonid())
   {
       case r.id.shitou:
        player = 0;
        break;
       case r.id.jiandao:
        player = 1;
        break;
       case r.id.bu:
        player = 2;
        break;
       default:
                    toast.maketext(firstactivity.this, "请选择", toast.length_long).show();
                    break;
   }
   //将的到的值传给secondactivity
   skip();
  }

    };

    private void skip()
    {
     intent intent = new intent();
     intent.setclass(firstactivity.this, secondactivity.class);
     bundle bundle = new bundle();
     bundle.putint("player", player);
     bundle.putint("computer", new random().nextint(3));
     intent.putextra("result", bundle);
     startactivity(intent);
    }

}

 

secondactivity.java代码 

复制代码 代码如下:


package com.example.caiquangame;

 

import android.os.bundle;
import android.app.activity;
import android.view.menu;
import android.view.menuitem;
import android.widget.textview;
import android.widget.toast;
import android.support.v4.app.navutils;

public class secondactivity extends activity {
    private textview tv;
    @override
    public void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_second);
        settitle("结果");
        tv = (textview)findviewbyid(r.id.show);

        bundle bundle = this.getintent().getbundleextra("result");
        int playerint = bundle.getint("player");
        int computerint = bundle.getint("computer");

        tv.settext("猜拳结果\n");
        tv.append("您的选择:");
        intchangestring(playerint);
        tv.append("电脑的选择:");
        intchangestring(computerint);
        tv.append("结果:"); 
        if(playerint == 0)
        {
         if(computerint == 0)
         {
          tv.append("平局");
         }
         else if(computerint == 1)
         {
          tv.append("您是赢家");
         }
         else
         {
          tv.append("电脑是赢家");
         }
        }
        else if(playerint == 1)
        {
         if(computerint == 0)
         {
          tv.append("电脑是赢家");
         }
         else if(computerint == 1)
         {
          tv.append("平局");
         }
         else
         {
          tv.append("您是赢家");
         }
        }
        else    
        {
         if(computerint == 0) 
         {
          tv.append("您是赢家");
         }
         else if(computerint == 1)
         {
          tv.append("电脑是赢家");
         }
         else
         {
          tv.append("平局");
         }
        }
    }

    private void intchangestring(int n)
    {
     switch (n)
     {
         case 0:
          tv.append("石头\n");
          break;
         case 1:
          tv.append("剪刀\n");
          break;
         case 2:
          tv.append("布\n");
          break;
         default:
          toast.maketext(secondactivity.this, "错误", toast.length_long).show();
          break;
     }
    }
   

   
}

 

3. 屏幕1跳转到屏幕2,屏幕2执行结束后有返回值到屏幕1(带返回值跳转)

参考示例程序:receiveresult(apidemo =>   app=>activity=>receiveresult)

重要代码:

 

复制代码 代码如下:

 

  //屏幕1调转到屏幕2

   intent intent = new   intent(forward.this,forwardtargetactivity.class);

   startactivityforresult(intent, get_code);

 

   //在屏幕2设置返回值

   setresult(result_ok,(new intent()).setaction("violet!"));

   finish();

 

   //在屏幕1得到从屏幕2返回的内容

   @override

    protected void onactivityresult(int requestcode,int resultcode,intent data)

    {

     if(requestcode == get_code)

     {

     if(resultcode == result_canceled)

     {

     edit.append("canceled!");

     }

     else

     {

     edit.append("(okay ");

     edit.append(integer.tostring(resultcode));

     edit.append(")");

     }

     if(data!=null)

     {

     edit.append(data.getaction());

     }

     }

     edit.append("\n");

    }

 

延伸 · 阅读

精彩推荐
  • AndroidAndroid CardView+ViewPager实现ViewPager翻页动画的方法

    Android CardView+ViewPager实现ViewPager翻页动画的方法

    本篇文章主要介绍了Android CardView+ViewPager实现ViewPager翻页动画的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Abby代黎明9592022-03-02
  • AndroidAndroid实现固定屏幕显示的方法

    Android实现固定屏幕显示的方法

    这篇文章主要介绍了Android实现固定屏幕显示的方法,实例分析了Android屏幕固定显示所涉及的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    鉴客6182021-03-27
  • AndroidAndroid实现Service获取当前位置(GPS+基站)的方法

    Android实现Service获取当前位置(GPS+基站)的方法

    这篇文章主要介绍了Android实现Service获取当前位置(GPS+基站)的方法,较为详细的分析了Service基于GPS位置的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    Ruthless8332021-03-31
  • AndroidAndroid程序设计之AIDL实例详解

    Android程序设计之AIDL实例详解

    这篇文章主要介绍了Android程序设计的AIDL,以一个完整实例的形式较为详细的讲述了AIDL的原理及实现方法,需要的朋友可以参考下...

    Android开发网4622021-03-09
  • Android汇总Android视频录制中常见问题

    汇总Android视频录制中常见问题

    这篇文章主要汇总了Android视频录制中常见问题,帮助大家更好地解决Android视频录制中常见的问题,需要的朋友可以参考下...

    yh_thu5192021-04-28
  • AndroidAndroid编程解析XML方法详解(SAX,DOM与PULL)

    Android编程解析XML方法详解(SAX,DOM与PULL)

    这篇文章主要介绍了Android编程解析XML方法,结合实例形式详细分析了Android解析XML文件的常用方法与相关实现技巧,需要的朋友可以参考下...

    liuhe68810042021-05-03
  • AndroidAndroid中AsyncTask详细介绍

    Android中AsyncTask详细介绍

    这篇文章主要介绍了Android中AsyncTask详细介绍,AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合,需要的朋友可以参考下...

    Android开发网7432021-03-11
  • AndroidAndroid界面效果UI开发资料汇总(附资料包)

    Android界面效果UI开发资料汇总(附资料包)

    android ui界面设计,友好的界面会提高用户体验度;同时也增强了android ui界面设计的难度,本文提供了一些常用开发资料(有下载哦)感兴趣的朋友可以了解下...

    Android开发网4652021-01-03