源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-03-15 03:49 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android 几种屏幕间跳转的跳转Intent Bundle
屏幕使用一个活动来实现,屏幕间是相互独立的,屏幕之间的跳转关系通过Intent来实现。 屏幕间跳转分为以下几类: 1. 屏幕1直接跳转到屏幕2       Intent intent = new Intent();       intent.setClass(屏幕1活动名.this,屏幕2活动名.class);       startActivity(intent);       finish();   //结束当前活动 2. 屏幕1带参数跳转到屏幕2    使用Bundle来传参数。    例子:猜拳游戏    界面: [img]http://files.jb51.net/file_images/article/201312/20131231151200601.jpg[/img] [img]http://files.jb51.net/file_images/article/201312/20131231151225254.jpg[/img] 重要代码: 电脑的选择是随机的,本次联系的基本思路是,三个选项利用三个数字来代替,让电脑   随机生成一个数字,根据数字的不同来产生不同的结果。
[u]复制代码[/u] 代码如下:
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);     }
跳转之后,要接受参数:
[u]复制代码[/u] 代码如下:
   Bundle bundle = this.getIntent().getBundleExtra("result");    int playerInt = bundle.getInt("player");    int computerInt = bundle.getInt("computer");
猜拳游戏完整代码: activity_first.xml代码 
[u]复制代码[/u] 代码如下:
<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代码
[u]复制代码[/u] 代码如下:
<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代码
[u]复制代码[/u] 代码如下:
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代码 
[u]复制代码[/u] 代码如下:
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) 重要代码:
[u]复制代码[/u] 代码如下:
  //屏幕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");     }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部