当前位置:  编程技术>移动开发

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

    来源: 互联网  发布时间:2014-10-22

    本文导语:  屏幕使用一个活动来实现,屏幕间是相互独立的,屏幕之间的跳转关系通过Intent来实现。 屏幕间跳转分为以下几类: 1. 屏幕1直接跳转到屏幕2       Intent intent = new Intent();       intent.setClass(屏幕1活动名.this,屏幕2活动名.cla...

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

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

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

      Intent intent = new Intent();

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

      startActivity(intent);

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

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

   使用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代码 

代码如下:

   
   

   

       

       

       
   

   


activity_second.xml代码

代码如下:

   


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");

    }


    
 
 

您可能感兴趣的文章:

  • Android点亮屏幕或屏幕解锁和锁定以及其他相关权限实现代码
  • android开发教程之textview内容超出屏幕宽度显示省略号
  • Android判断屏幕是横屏或是竖屏的简单实现方法
  • android 选项卡(TabHost)如何放置在屏幕的底部
  • Android获取屏幕方向及键盘状态的小例子
  • Android-屏幕适配需要注意的地方总结
  • android 如何设置开机后屏幕亮度默认值为自动调节
  • android获取屏幕像素思路及代码
  • android 获取屏幕像素大小的正确方法
  • Android 获取屏幕高度,标题高度,状态栏高度(实例代码)
  • android屏幕全屏的实现代码
  • Android中截取当前屏幕图片的实例代码
  • android接收到蓝牙配对请求时如何点亮屏幕具体实现
  • 解析android中的dip,dp,px,sp和屏幕密度
  • android获取屏幕的长与宽实现代码(手写)
  • 探讨Android 的屏幕滚动操作不如 iPhone 流畅顺滑的原因
  • Android中通过view方式获取当前Activity的屏幕截图实现方法
  • Android开发 旋转屏幕导致Activity重建解决方法
  • Android的单位以及屏幕分辨率详解
  • android 键盘事件和屏幕事件的运行原理及交互实现
  • android教程之intent的action属性使用示例(intent发短信)
  • Android Intent启动别的应用实现方法
  • android intent使用定义标题
  • Android 使用Intent传递数据的实现思路与代码
  • Android中BroadcastReceiver(异步接收广播Intent)的使用
  • android中Intent传值与Bundle传值的区别详解
  • Android Intent的几种用法详细解析
  • Android Intent开发包 OpenIntents
  • Android提高之Activity+Intent用法示例
  • Android学习笔记--Activity中使用Intent传值示例代码
  • Android系列之Intent传递对象的几种实例方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3