对于想了解Androidstudio实现两个窗口之间传递信息信息:intent的读者,本文将提供新的信息,我们将详细介绍androidstudio两个界面的信息交互,并且为您提供关于AndroidIn
对于想了解Android studio实现两个窗口之间传递信息信息:intent的读者,本文将提供新的信息,我们将详细介绍androidstudio两个界面的信息交互,并且为您提供关于Android Intent Activity之间传递数据、Android Studio Intent使用(显式、隐式)、Android Studio 之 通过 Intent 完成点击按钮实现页面跳转、Android Studio 使用Intent的有价值信息。
本文目录一览:- Android studio实现两个窗口之间传递信息信息:intent(androidstudio两个界面的信息交互)
- Android Intent Activity之间传递数据
- Android Studio Intent使用(显式、隐式)
- Android Studio 之 通过 Intent 完成点击按钮实现页面跳转
- Android Studio 使用Intent
Android studio实现两个窗口之间传递信息信息:intent(androidstudio两个界面的信息交互)
intent介绍
- 那我们到底是怎么从一个窗口跳转到另个窗口的,一个窗口的信息是怎么传递给另一个窗口的呢?没错,就是通过intent。下面我们来简单的介绍一下intent。
- Android中使用Intent的方式有两种,分别为显式Intent和隐式Intent。
//显式intent(这一个代码块,只介绍一个窗口怎么跳到另一个窗口)
//方法一:
//创建Intent对象,指定启动的类名。就是如果intent对象被启动那么窗口就会从MainActivity所对应的
//窗口跳转到SecondActivity所对应的窗口
SecondActivity Intent intent=new Intent(MainActivity.this, SecondActivity.class);
//启动intent
startActivity(intent);
//方法二:除了通过指定类名的方式来跳转窗口外,显式Intent还可以根据目标组件的包名、全路径来指
//定要跳转的窗口。
//setClassName(“包名”,“类的全路径名称”);
intent.setClassName(“com.jxust.cn”,“com.jxust.cn.chapter_shengtime”);
//启动Activity
startActivity(intent);
//隐式intent(我不懂,但我把别人的笔记放在下面):
在程序中没有明确指定需要启动的Activity,Android系统会根据在Androidmanifest.xml文件当中设置
//的动作(action)、类别(category)、数据(Uri和数据类型)来启动合适的组件。
<activity android:name=".MainActivity">
<intent-filter>
<!—设置action属性,根据name设置的值来指定启动的组件-->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
//说明:<action>标签指定了当前Activity可以响应的动作为android.intent.action.MAIN,而
//<category>标签则包含了一些类别信息,只有当这两者中的内容同时匹配时,Activity才会启动。
ntent intent=new Intent();
Intent.setAction(“android.intent.action.MAIN”);
StartActivity(intent);
//窗口和窗口之间的跳转实现了,那么窗口和窗口之间的信息怎么传递?下面我们来介绍一下
Intent intent=new Intent(this,SecondActivity.class);
//传递参数
intent.putExtra(键, 值);//“值“可以是任意类型的数据,”键“就是给“值”取一个名字就叫“键”,
//“键”可以用来索引
startActivity(intent);
如果需要传递的参数比多时,就需要使用putExtras()方法传递数据,该方法传递的是Bundle对象,具体的代码如下:
Intent intent=new Intent(this,SecondActivity.class);
Bundle bundle=new Bundle();
bundle.putString("phone","123456");
bundle.putString("sex","男");
bundle.putString("age","18");
intent.putExtras(bundle);
startActivity(intent);
//被启动的窗口怎么接受到数据的呢?
Intent intent=this.getIntent();
String receive_str=intent.getStringExtra(键);//”键“在这里就被用到了
利用onActivityResult获取跳转到的目标窗口的返回值:
如果启动一个Activity,并且希望返回结果给当前的Activity,那么可以使用startActivityForResult()方法来启动Activity
startActivityForResult(Intent intent, int requestCode)
第一个参数为普通Intent,指定要启动的NewActivity
第二个参数为请求码,即调用startActivityForResult()传递过去的值
为了获取被启动Activity的返回结果,需要执行以下两个步骤:
1.被启动的Activity需要调用setResult(int resultCode,Intent data)方法设置返回的结果数据
2.跳转前的Activity要重写onActivityResult(int requestCode,int resultCode,Intent intent)方法接收结果数据
onActivityResult(int requestCode, int resultCode, Intent data)
第一个参数为请求码,即调用startActivityForResult()传递过去的值
第二个参数为结果码,结果码用于标识返回数据来自哪个新Activity
第三个参数为返回的数据,来自NewActivity
利用onActivityResult获取返回值与intent.getStringExtra获取返回值的区别?
坑,未填。。。。。。。。。
我们来实战一下吧。。。
目标:
-
做一个登入和注册的界面:在登入界面中点击注册按钮,就跳转到注册界面。注册完了之后,点击完成,就会跳转到登入页面。此时的登入页面已经自动填写了已注册的信息。点击登入,跳转到一个界面上,这个界面上显示“欢迎 小明”
-
我们要创建三个窗口,那我们就要创建三个activity,三个layout。三个activity分别是:MainActivity(登入) Activity2(点击登入后跳转到的欢迎界面)Activity3(注册)。这个三个activity分别对应三个layout为:activity_main、mylayout2、mylayout
1,在MainActivity中填入:
package com.example.lesson3;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//创建两个Button用于登入和注册,创建两个EditText,用于输入账号和密码
private Button btnLogin,btnReg;
private EditText edtName,edtPwd;
private final int REQUEST_CODE=101;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnLogin = (Button) findViewById(R.id.btnLogin);
btnReg = (Button) findViewById(R.id.btnReg);
edtName = (EditText) findViewById(R.id.edtName);
edtPwd = (EditText) findViewById(R.id.edtPwd);
//点击登入,向Activity2传递用户名
btnLogin.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this, Activity2.class);
String name=edtName.getText().toString();
String pwd=edtPwd.getText().toString();
intent.putExtra("name",name);
intent.putExtra("pwd",pwd);
startActivity(intent);
}
});
//点击注册,跳转到Activity3。进行注册,
btnReg.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this, Activity3.class);
startActivityForResult(intent,REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==REQUEST_CODE){
String name=data.getStringExtra("name");
String pwd=data.getStringExtra("pwd");
edtName.setText(name);
edtPwd.setText(pwd);
}
}
}
2,在Activity3中填入:
package com.example.lesson3;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Activity3 extends Activity {
private Button btnReg;
private EditText edtName, edtPwd, edtRePwd;
private static final int RESULT_CODE = 101;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
btnReg = (Button) findViewById(R.id.btnReg);
edtName = (EditText) findViewById(R.id.edtName);
edtPwd = (EditText) findViewById(R.id.edtPwd);
edtRePwd = (EditText) findViewById(R.id.edtRepwd);
btnReg.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = edtName.getText().toString();
String pwd = edtPwd.getText().toString();
String repwd = edtRePwd.getText().toString();
if (!"".equals(pwd) && pwd.equals(repwd)) {
//获得启动该Activity的Intent对象
Intent intent = getIntent();
intent.putExtra("name", name);
intent.putExtra("pwd", pwd);
//设置结果码,并设置结束后返回的Activity
setResult(RESULT_CODE, intent);
//结束RegActivity
Activity3.this.finish();
} else {
Toast.makeText(Activity3.this, "密码输入不一致", Toast.LENGTH_LONG).show();
}
}
});
}
}
3,在Activity2中填入:
package com.example.lesson3;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Activity2 extends Activity {
private TextView welcome;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout2);
welcome=(TextView)findViewById(R.id.welcome);
Intent intent=this.getIntent();
String name=intent.getStringExtra("name");
welcome.setText("Hello "+name);
}
}
4,在在AndroidManifest.xml中
4,在AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lesson3">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
//下面两个activity为新添加的:
<activity android:name=".Activity3">
</activity>
<activity android:name=".Activity2">
</activity>
</application>
</manifest>
5,在layout拖拽,形成界面
Android Intent Activity之间传递数据
向下传递
FirstActivity → ThirdActivity
FirstActivity
button_1.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//数据样式
String data = "Hello Next!";
//显式Intent
Intent intent = new Intent(FirstActivity.this,ThirdActivity.class);
//以键值对的方式存入数据
intent.putExtra("FirstActivity_data",data);
//启动Intent
startActivity(intent);
}
});
ThirdActivity
//获取启动此Activity的Intent
Intent intent = getIntent();
//根据传递的数据类型选择相应的Extra方法,传入对应的键,获取值
String data = intent.getStringExtra("FirstActivity_data");
//输出日志查看
Log.d(TAG, "onCreate: "+data);
向上传递
ThirdActivity → FirstActivity
FirstActivity
private static final String TAG = "FirstActivity";
//重写onActivityResult方法,接收返回数据
//requestCode:启动ThirdActivity的请求码
//resultCode:ThirdActivity返回活动FirstActivity的返回码
//data:带有返回数据的intent
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//匹配请求码
switch (requestCode) {
case 1:
//匹配返回码
if (resultCode == RESULT_OK) {
//取出数据
String return_data = data.getStringExtra("ThirdActivity_data");
//输出日志查看
Log.d(TAG, "onActivityResult: "+return_data);
}
default:
}
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
Button button_1 = findViewById(R.id.button_1);
button_1.setonClickListener(new View.OnClickListener() {
public void onClick(View v) {
//显式 Intent
Intent intent = new Intent(FirstActivity.this,ThirdActivity.class);
//启动Intent,并设置请求码为1
startActivityForResult(intent,1);
}
});
}
ThirdActivity
按键
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.third_layout);
Button button_1 = findViewById(R.id.third_button_1);
button_1.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//数据样式
String data = "Hello My Is ThirdActivity.onCreate.onClick";
//创建一个空的intent
Intent intent = new Intent();
//将数据按键值对的方式存储于intent
intent.putExtra("ThirdActivity_data",data);
//为该intent设置返回码
setResult(RESULT_OK,intent);
//销毁该Activity
finish();
}
});
}
Back
public void onBackpressed() {
String data = "Hello My Is ThirdActivity.onBackpressed";
Intent intent = new Intent();
intent.putExtra("ThirdActivity_data",data);
setResult(RESULT_OK,intent);
finish();
}
Android Studio Intent使用(显式、隐式)
https://blog.csdn.net/u012005313/article/details/47006689
使用Intent能够使程序在不同活动中跳转,意及能够使用不同界面。Intent用法分为显示和隐式
Intent概念:Intent是Android程序中各组件之间进行交互的一种重要方式,不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。
Intent一般可被用于启动活动、启动服务、以及发送广播等场景
##########################################################
前期准备工作
1.创建一个项目(IntentTest),使用一个默认的空的活动MainActivity
2.修改activity_main.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:paddingLeft="@dimen/activity_horizontal_margin"
-
android:paddingRight= "@dimen/activity_horizontal_margin"
-
android:paddingTop= "@dimen/activity_vertical_margin"
-
android:paddingBottom= "@dimen/activity_vertical_margin" tools:context=".MainActivity">
-
-
<Button
-
android:id= "@+id/button_1"
-
android:layout_width= "match_parent"
-
android:layout_height= "wrap_content"
-
android:text= "Button 1"
-
/>
-
-
</RelativeLayout>
2.新建一个活动SecondActivity
Activity Name = SecondActivity
Layout Name = activity_second
3.修改activity_second.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">
-
-
<Button
-
android:id= "@+id/button_2"
-
android:layout_width= "match_parent"
-
android:layout_height= "wrap_content"
-
android:text= "Button 2"
-
/>
-
-
</LinearLayout>
解释:定义一个按钮,按钮上文本显示为Button 2
4.修改SecondActivity.java类
代码如下:
-
public class SecondActivity extends Activity {
-
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
requestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏标题栏
-
setContentView(R.layout.activity_second);
-
}
5.在AndroidManifest.xml中为SecondActivity活动进行注册
在<application></application>之间加入
-
<activity
-
android:name= ".SecondActivity"
-
android:label= "@string/title_activity_second" >
-
</activity>
note:SecondActivity不是主活动,不需要配置<intent-filter>标签里的内容
##############################################
显示使用Intent
Intent有多个构造函数的重载,其中一个是Intent(Context packageContext, Class<?> cls)
该构造函数接收两个参数,第一个参数Context要求提供一个启动活动的上下文
第二个参数Class则是指定想要启动的目标活动
Activity类中提供了一个startActivity()方法,这个方法是专门用于启动活动,它接收一个Intent参数
我们将构建好的Intent传入startActivity()方法就可以启动目标活动
1.修改MainActivity类中按钮的点击事件
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.activity_main);
-
-
Button button=(Button)findViewById(R.id.button_1);
-
button.setOnClickListener( new View.OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
Toast.makeText(MainActivity. this, "You click Button 1", Toast.LENGTH_SHORT).show();
-
Intent intent= new Intent(MainActivity.this, SecondActivity.class);
-
startActivity(intent);
-
}
-
});
-
}
2.修改SecondActivity类中按钮的点击事件
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
requestWindowFeature(Window.FEATURE_NO_TITLE);
-
setContentView(R.layout.activity_second);
-
-
Button button=(Button)findViewById(R.id.button_2);
-
button.setOnClickListener( new View.OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
Toast.makeText(SecondActivity. this, "You Click Button 2", Toast.LENGTH_SHORT).show();
-
finish();
-
}
-
});
-
}
点击运行按钮,截图如下:
程序生成后,手机出现界面1,点击button1按钮,界面跳转到界面2,点击button2,界面跳转会界面1
###########################################
隐式使用Intent
隐式Intent通过指定一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮助我们找出合适的活动去启动
1.修改AndroidManifest.xml文件,修改活动如下:
-
<activity
-
android:name= ".SecondActivity"
-
android:label= "@string/title_activity_second" >
-
<intent-filter>
-
<action android:name= "com.example.activitytest.ACTION_START" />
-
<category android:name= "android.intent.category.DEFAULT" />
-
</intent-filter>
-
</activity>
在<action>标签中指明当前活动可以响应com.example.activitytest.ACTION_START这个action,而<category>标签则包含了一些附加信息,更精确地指明了当前的活动能够响应的Intent中还可能带有的category。
只有<action>和<category>中的内容同时能够匹配上Intent中指定的action和category,这个活动才能响应Intent
2.修改MainActivity类中按钮的点击事件
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.activity_main);
-
-
Button button=(Button)findViewById(R.id.button_1);
-
button.setOnClickListener( new View.OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
Toast.makeText(MainActivity. this, "You click Button 1", Toast.LENGTH_SHORT).show();
-
//Intent intent=new Intent(MainActivity.this, SecondActivity.class);
-
Intent intent= new Intent("com.example.activitytest.ACTION_START");
-
startActivity(intent);
-
}
-
});
-
}
note: android.intent.category.DEFAULT是一种默认的category,在调用startActivity()方法的时候会自动将这个category添加到Intent中
点击运行按钮,程序成功运行
#######################################################3
ADD:每个Intent中只能指定一个action,但却能够指定多个category.
上述的Intent中只有一个默认的category,再增加一个测试一下
1.修改AndroidManifest.xml文件
-
<activity
-
android:name= ".SecondActivity"
-
android:label= "@string/title_activity_second" >
-
<intent-filter>
-
<action android:name= "com.example.activitytest.ACTION_START" />
-
<category android:name= "android.intent.category.DEFAULT" />
-
<category android:name= "com.example.activitytest.MY_CATEGORY" />
-
</intent-filter>
-
</activity>
-
</application>
2.修改MainActivity类中按钮的点击事件
-
Button button=(Button)findViewById(R.id.button_1);
-
button.setOnClickListener( new View.OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
Toast.makeText(MainActivity. this, "You click Button 1", Toast.LENGTH_SHORT).show();
-
//Intent intent=new Intent(MainActivity.this, SecondActivity.class);
-
Intent intent= new Intent("com.example.activitytest.ACTION_START");
-
intent.addCategory( "com.example.activitytest.MY_CATEGORY");
-
startActivity(intent);
-
}
运行程序,成功
#################################################
隐式Intent的更多用法
使用隐式Intent,不仅可以启动自己程序内部的活动,还可以启动其他程序的活动,这使得Android多个应用程序之间的功能共享称为可能
例如:在应用程序中展示一个网页
修改MainActivity中按钮点击事件
-
button.setOnClickListener( new View.OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
Toast.makeText(MainActivity. this, "You click Button 1", Toast.LENGTH_SHORT).show();
-
//Intent intent=new Intent(MainActivity.this, SecondActivity.class);
-
//Intent intent=new Intent("com.example.activitytest.ACTION_START");
-
//intent.addCategory("com.example.activitytest.MY_CATEGORY");
-
-
Intent intent= new Intent(Intent.ACTION_VIEW);
-
intent.setData(Uri.parse( "http://www.baidu.com"));
-
startActivity(intent);
-
}
-
});
程序中首先指定Intent的action是Intent.ACTION_VIEW,这是一个Android系统内置的动作,其常量值为android.intent.action.VIEW.
然后通过Uri.parse()方法,将一个网址字符串解析成一个Uri对象,再调用Intent的setData()方法将这个Uri对象传递进去
此时重新运行程序,在MainActivity界面点击按钮就可以打开系统浏览器
例如:在程序中调用系统拨号界面
修改MainActivity中按钮点击事件
-
Button button=(Button)findViewById(R.id.button_1);
-
button.setOnClickListener( new View.OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
Toast.makeText(MainActivity. this, "You click Button 1", Toast.LENGTH_SHORT).show();
-
//Intent intent=new Intent(MainActivity.this, SecondActivity.class);
-
//Intent intent=new Intent("com.example.activitytest.ACTION_START");
-
//intent.addCategory("com.example.activitytest.MY_CATEGORY");
-
-
Intent intent= new Intent(Intent.ACTION_DIAL);
-
intent.setData(Uri.parse( "tel:10086"));
-
startActivity(intent);
-
}
-
});
Intent.ACTION_DIAL是一个Android系统的内置动作
--------------------- 本文来自 编号1993 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u012005313/article/details/47006689?utm_source=copy
Android Studio 之 通过 Intent 完成点击按钮实现页面跳转
•Intent 简介
Intent 是 Android 程序中各组件之间进行交互的一种重要方式;
它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。
Intent 有多个构造函数,其中一个是 Intent(Context packageContext, Class<?> cls):
- 第一个参数 Context 要求提供一个启动活动的上下文
- 第二个参数 Class 则是指定想要启动的目标活动
通过这个构造函数可以构建出 Intent 的 “意图”;
•设置跳转界面
新建一个 Empty Activity,命名为 AnotherActivity;
修改 activity_another.xml 中的代码;
activity_another.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="This is Another Activity!" android:textSize="20sp" android:textColor="@color/black"/> </RelativeLayout>该代码只放置了一个用于显示文本的 TextView;
•跳转前的准备工作
在 activity_main.xml 中创建一个 Button 控件,并设置其 id 为 btn,代码如下;
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="跳转" /> </RelativeLayout><?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="跳转" /> </RelativeLayout>
•使用 Intent 完成跳转
接下来修改 MainActivity.java 中的代码;
MainActivity.java
public class MainActivity extends AppCompatActivity { private Button mBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mBtn = findViewById(R.id.btn); mBtn.setonClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,AnotherActivity.class); startActivity(intent); } }); } }在 MainActivity.java 中创建一个 Button 变量 mBtn;
通过 findViewById(R.id.btn) 找到 btn 这个组件;
创建一个新的 Activity,姑且命名为 nextActivity;
然后,通过为 mBtn 设置点击事件完成界面跳转;
mBtn.setonClickListener(new View.OnClickListener(){ public void onClick(View view){ Intent intent=new Intent(MainActivity.this,AnotherActivity.class); startActivity(intent); } });通过 Intent intent=new Intent(); ,我们构造出了一个 Intent;
传入 MainActivity.this 作为上下文,传入 AnotherActivity.class 作为活动目标;
这样我们的意图就非常明显了:在 MainActivity 这个活动的基础上打开 AnotherActivity 这个活动;
然后通过 startActivity() 方法来执行这个 Intent。
•运行效果
•其他跳转方式
除了使用 Intent intent=new Intent(MainActivity.this,AnotherActivity.class); 完成跳转外,
我们还可以这么写:
mBtn.setonClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(MainActivity.this,AnotherActivity.class); startActivity(intent); } });通过 intent.setClass() 方法完成跳转,效果是一样的;
Android Studio 使用Intent
1.显式Intent
Intent intent=new Intent(yzj.this,MainActivity.class);//当前活动的实例,要去的实例
startActivity(intent);//注入下一个活动
2.隐式Intent
Intent intent=new Intent("A");
intent.addCategory("B");
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="A" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="B" />
</intent-filter>
</activity>
代码要添加筛选 确认那个活动可以进那个活动
隐式的调用系统浏览器
Intent intent=new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
隐式的调用电话簿
Intent intent=new Intent(Intent.ACTION_DIAL);//内置对象
intent.setData(Uri.parse("TEL:10000"));
向下一层传递接收数据
intent.putExtra("h","123");//向下一层传递数据
Intent te=getIntent();//获取传入的值 object 类型 在首次加载地方写入
String data=intent.getStringExtra("h");//获取键值 感觉类型用不同的类型去接受
返回数据给上一次 要在 上一层 重写onActivityResuly()
在返回是销毁页面
startActivityForResult(intent,1); 返回对象 标识位1
@Override
public void onBackPressed() {
Intent intent=new Intent();
intent.putExtra("","");//存入值
setResult(RESULT_OK,intent);
finish();//销毁
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode==1)
{
if (resultCode==RESULT_OK)
{
String resturn=data.getStringExtra("123"); //获取值
}
}
}
今天关于Android studio实现两个窗口之间传递信息信息:intent和androidstudio两个界面的信息交互的介绍到此结束,谢谢您的阅读,有关Android Intent Activity之间传递数据、Android Studio Intent使用(显式、隐式)、Android Studio 之 通过 Intent 完成点击按钮实现页面跳转、Android Studio 使用Intent等更多相关知识的信息可以在本站进行查询。
本文标签: