Android 几种屏幕间跳转的跳转Intent Bundle
来源:互联网 发布:手机ip更改软件 编辑:程序博客网 时间:2024/05/28 15:54
屏幕使用一个活动来实现,屏幕间是相互独立的,屏幕之间的跳转关系通过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代码
<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() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubswitch(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;}//将的到的值传给secondActivityskip();} }; 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 几种屏幕间跳转的跳转Intent Bundle
- Android Intent 的几种跳转
- Intent跳转页面的几种方式
- 跳转传值(intent,bundle)
- android:Intent的两种跳转
- Android,使用Intent或Bundle传递参数,跳转页面。
- Android,使用Intent或Bundle传递参数,跳转页面。
- Android,使用Intent或Bundle传递参数,跳转页面
- android开发基础:Intent与Bundle的使用,实现页面跳转及信息传递
- Android Intent Activity 跳转几种情况所使用的不同方法
- android基础之页面间跳转传值,用Bundle+Intent
- android Activity 的几种跳转方式
- android页面跳转的几种方式
- Intent;Bundle--Activity之间跳转;Activity和Server之间跳转
- Android - Intent - 界面跳转
- Android - Intent - 界面跳转
- android intent 跳转
- android intent 跳转
- 【财政决策支持系统DSS】财政支出OLAP分析模型参考【财政数据仓库DW】
- linux oom详解
- 任正非:总有一天华为会光荣反攻进入美国
- Matlab:如何查找给定目录下的文件
- matlab获取文件夹中所有图像的方法
- Android 几种屏幕间跳转的跳转Intent Bundle
- 【opencv小应用】手势动态识别(简单实现)
- 国产InitPHP框架系列 - InitPHP框架搭建高可用WEB应用03:模板View使用
- Hibernate双向多对一关系
- 安卓锁屏的实现
- msp430端口操作
- Tomcat Server.xml配置文件i
- iOS开发中使用OCUnit进行单元测试
- ZOJ-3202