Intent练习:实现有/无返回结果的页面跳转
视频地址:http://www.imooc.com/video/2212
一、新建Activity,new一个class文件,FActivity,继承Activity类,导入Activity包,实现onCreate方法。
二、新建FActivity的XML文件,进行布局,放置两个button和一个textView
三、在类文件中使用setContentView(R.layout.factivity);绑定XML文件
四、重复上述步骤,继续新建另一个class文件SActivity及XML布局文件,放置一个button。
五、在res --> AndroidManifest.xml声明两个activity,并设置FActivity为第一个显示的界面
六、在class文件FActivity中加入无返回的button控件,设置监听器。 监听器中设置intent来进行页面跳转,并设置启动SActivity。
七、在class文件FActivity中加入有返回的button控件,设置监听器。 监听器中设置intent来进行页面跳转,并设置启动SActivity。
八、在class文件FActivity中设置返回接受处理,把返回结果用在TextView中显示。
九、在class文件SActivity中的Button监听器中设置返回内容,结束本activity。
package com.example.intent_test;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.NoCopySpan.Concrete;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class FActivity extends Activity{
private Context mContext;
private Button btn_no_return_start;
private Button btn_return_start;
private TextView tv;
final private int FIRST_INTENT = 1;
//final
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
btn_no_return_start = (Button) findViewById(R.id.btn_no_return_start);
btn_return_start = (Button) findViewById(R.id.btn_return_start);
tv = (TextView) findViewById(R.id.text_show);
mContext = this;
btn_no_return_start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//设置页面跳转
Intent intent = new Intent(mContext, SActivity.class);
//打开activity页面
startActivity(intent);
}
});
btn_return_start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//设置页面跳转
Intent intent = new Intent(mContext, SActivity.class);
//打开activity页面
startActivityForResult(intent, FIRST_INTENT);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//接收返回内容处理
if ((requestCode == 1) && (resultCode == 1))
{
String content = data.getStringExtra("data");
tv.setText(content);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_no_return_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/str_btn_no_return_start" />
<Button
android:id="@+id/btn_return_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/str_btn_return_start" />
<TextView
android:id="@+id/text_show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/str_text" />
</LinearLayout>
package com.example.intent_test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SActivity extends Activity{
private Button btn_return;
private String content = "HELLO!!";
final private int FIRST_RESULT = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sactivity);
btn_return = (Button) findViewById(R.id.btn_return);
btn_return.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//设置返回内容
Intent data = new Intent();
data.putExtra("data", content);
setResult(FIRST_RESULT, data);
//结束activity
finish();
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_return"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/str_btn_return" />
</LinearLayout>