您的位置:首页 > 移动开发 > Android开发

android自学 intent 页面跳转的两种方法

2016-03-06 16:08 501 查看
在Activity中 使用Intent进行页面跳转

第一种方法 是没有返回参数的 使用了button_first

第二种方法是有返回参数的 使用了按钮 button_second

代码如下

package com.example.admin.test0305_2;

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

/**
* Created by admin on 2016/3/6.
*/
public class Select extends Activity{
private Button button1;
private Button button2;
private TextView textview;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.select);
button1= (Button) findViewById(R.id.button_first);
button2= (Button) findViewById(R.id.button_secobd);
textview= (TextView) findViewById(R.id.textView);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(Select.this,MainActivity.class);
startActivity(intent);
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(Select.this,MainActivity.class);
startActivityForResult(intent,1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1&&resultCode==2){
String content=data.getStringExtra("data");
textview.setText(content);
}
}

}


第二个页面的代码如下

package com.example.admin.test0305_2;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.Window;
import android.widget.Button;

public class MainActivity extends AppCompatActivity  {
private Button button;
private String content="你好第一个界面~~~~~";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
button= (Button) findViewById(R.id.button_two);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent data=new Intent();
data.putExtra("data",content);
setResult(2,data);
finish();
}
});
}

}
可以发现两种方式区别在于 一个是startActivity() 另一个是startActivityForResult()

第一种很简单

重点是第二种

记录一下

startActivityForResult(intent,1)中 第一个是传入需求 第二是记录一个需求码 这里是1 也就是后面方法
protected void onActivityResult(int requestCode, int resultCode, Intent data)
中的requestCode

这个方法可以直接重写

然后在第二个页面代码中 对其中的button_two 添加监听事件

因为没有其他的需求所以Intent()中没有内容

通过intent的 putExtra方法向 “data”中添加字符串 content

然后对intent data记录结果码 resultCode 2

在第一个界面代码方法中 对去需求码和结果码进行判断

这样找到相应的data(intent类型)然后通过

String content=data.getStringExtra("data");
textview.setText(content);
取出data中的字符串 然后写入textview中

虽然很很简单 但是我还是看了好久,真希望自己也能随随便便就是一大串代码写出来 唉 加油吧骚年~~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: