activity启动
- 直接启动(只是简单的点击按钮从一个Activity到另一个Activity)
- 这是MainActivity类,由它启动ActivityTwo类
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 定义一个intent对象,目标Activity为ActivityTwo
final Intent intent = new Intent(this,ActivityTwo.class);
// 定义一个Button,点击进入ActivityTwo
Button bt = (Button) findViewById(R.id.button1);
// 定义点击事件
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// 调用startActivity方法
startActivity(intent);
}
});
}
}
- 这是MainActivity类的xml配置文件
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="108dp"
android:text="你现在位于MainActivity类" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="116dp"
android:text="点我啊" />
- 这是ActivityTwo类
import android.app.Activity;
import android.os.Bundle;
public class ActivityTwo extends Activity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
}
}
- 这是ActivityTwo类的xml配置文件
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="62dp"
android:layout_weight="1"
android:text="欢迎来到ActivityTwo" />
- 要注意在AndroidManifest文件的<application>元素里加入
<activity
android:name="com.example.activtitytest.ActivityTwo">
</activity>
2.带返回值的启动(从第一个Activity点击按钮等候到第二个Activity,点击第二个Activity的按钮返回第一个Activity,(带数据的返回哦))方法的调用请看Intents and Intent Filters详解- MainActivity类
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
@SuppressLint("ResourceAsColor")
public class MainActivity extends Activity {
// 定义常量request_Code
private final static int request_Code = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 定义按钮
final Intent intent = new Intent(MainActivity.this,SecondActivity.class);
Button bt = (Button) findViewById(R.id.button1);
// 定义点击按钮事件
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// 调用startActivityForResult方法
startActivityForResult(intent, request_Code);
}
});
}
@Override
//处理返回数据
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
// 当请求码(requstCode)与结果码(resultCode)相匹配时处理数据
if(requestCode == request_Code && resultCode == RESULT_OK)
{
if(data != null)
{
String info = data.getData().toString();
// 定义TextView
TextView tv = (TextView) findViewById(R.id.textView1);
// 设置TextView的文本
tv.setText(info);
}
else
{
Toast.makeText(this, "无返回任何内容", Toast.LENGTH_SHORT).show();
}
}
}
}
- MainActivity类的xml的配置文件
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="现在你在MainActivity" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="126dp"
android:text="点击我将去SecondActivity" />
</RelativeLayout>
- SecondActivity类
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class SecondActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// 定义按钮
Button bt = (Button) findViewById(R.id.button1);
// 定义点击按钮事件
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent data = new Intent();
String str = "带我会MainActivity吧";
// 将值放入Intent对象中
data.setData(Uri.parse(str));
// RESULT_OK为系统定义的
setResult(RESULT_OK,data);
// 关闭该Activity
finish();
}
});
}
}
- secondActivity类的xml配置文件
<?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" >
<TextView
android:id="@+id/textView1"
android:layout_width="184dp"
android:layout_height="wrap_content"
android:text="欢迎来到SecondActivity" />
<Button
android:id="@+id/button1"
android:layout_width="194dp"
android:layout_height="wrap_content"
android:text="点我回到MainActivity,带数据了哦" />
</LinearLayout>
- 别忘了在<application>元素里加入
<activity
android:name="com.example.activitytest.SecondActivity">
</activity>