activity启动的两种方

activity启动

  1. 直接启动(只是简单的点击按钮从一个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>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过Intents,我们可以启动Activity。有两种启动Activity的方式:显式启动和隐式启动。显式启动需要创建一个Intent对象,并指定应用程序上下文和需要启动Activity,然后调用startActivity方法启动新的Activity。例如,可以使用以下代码启动一个名为SecondActivityActivity: Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent). 隐式启动不需要指定特定的Activity,只需要指定Intent的category、action和data,具体启动哪一个Activity由系统和用户共同决定。隐式启动Activity可以是系统中自带的,也可以是已安装的第三方程序中的Activity,还可以是程序本身的Activity。 要让我们自己的程序能够响应一些Intent请求,我们需要使用Intent过滤器(Intent Filter)。当我们隐式启动Activity时,并没有在Intent中指明Activity所属的类,Android系统会使用Intent过滤器来根据Intent中的数据信息找到需要启动Activity。通过配置Intent过滤器,我们的应用程序可以响应特定的Intent请求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Intent详解(一)----显、隐式开启Activity](https://blog.csdn.net/zys_1997/article/details/79119039)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值