安卓|如何将数据从一个活动发送到第二个活动
原文:https://www . geesforgeks . org/Android-如何将数据从一个活动发送到第二个活动/
先决条件:
本文旨在讲述和展示如何“使用意图将数据从一个活动发送到第二个活动”。在本例中,我们有两个活动,活动 _ 第一个是源活动,活动 _ 第二个是目标活动。我们可以使用 putExtra()方法从一个活动中发送数据,并使用 getStringExtra()方法从第二个活动中获取数据。
示例:
在本例中,使用一个编辑文本来输入文本。当点击“发送”按钮时,该文本被发送到第二个活动。为此,将启动意图并运行以下方法:
- putExtra() 方法用于发送数据,键值对键中的数据是变量名,值可以是 Int、String、Float 等。
- getstringxtra()方法是获取上述方法发送的数据(密钥)。根据值的数据类型,还有其他方法,如 getIntExtra(),getFloatExtra()
如何创建一个安卓应用程序在两个活动之间发送和接收数据
第一步:首先创建一个新的安卓应用。这将创建一个 XML 文件和一个 Java 文件。请参考先决条件以了解有关此步骤的更多信息。
步骤 2: 打开“activity_first_activity.xml”文件,在相对布局中添加以下小部件:
- 输入信息的编辑文本
- 发送数据的按钮
此外,将 标识 以及其他属性分配给每个组件,如下图和代码所示。组件上分配的标识有助于在 Java 文件中轻松找到和使用该组件。
语法:
android:id="@+id/id_name"
这里给定的标识如下:
- 发送按钮:发送按钮标识
- 编辑文本输入:send_text_id
这将使应用程序的用户界面。
第三步:现在,在 UI 之后,这一步将创建 App 的后端。为此,打开“first_activity.java”文件,并使用 findViewById()方法实例化在 XML 文件(EditText,send Button)中制作的组件。此方法借助于分配的标识将创建的对象绑定到用户界面组件。
一般语法:
组件类型对象=(组件类型)findviewbyid(r . id . idfthek 组件);
所用组件的语法:
Button send _ Button =(Button)findwiewbyid(r . id . send _ Button _ id); send _ text =(EditText)findwiewbyid(r . id . send _ text _ id);
步骤 4: 该步骤包括设置发送和接收数据的操作。这些操作如下:
1.首先在发送按钮上添加监听器,该按钮将发送数据。具体如下:
send _ button . setonclicklistener(新视图。OnClickListener() {}
点击此按钮后,将执行以下操作。
2.现在创建字符串类型变量来存储用户输入的编辑文本的值。获取该值并将其转换为字符串。具体如下:
String str = send_text.getText()。toString();
3.现在创建意图对象 First_activity.java 类到 Second_activity 类。具体如下:
意图意图=新意图(getApplicationContext()、Second _ activity . class);
其中 getApplicationContext()将获取当前活动。
4.将 putExtra 方法中的值放入键值对,然后开始活动。具体如下:
intent . putextra(" message _ key ",str); 开始活动(意向);
其中“str”是字符串值,键是“message_key ”,该键将用于获取字符串值
步骤 5: 现在我们必须创建一个 Second_Activity 来接收数据。 创建第二个活动的步骤如下:
安卓项目>文件>新增>活动>清空活动
第 6 步:现在打开第二个 xml 文件。 添加显示接收消息的文本视图。为文本视图分配标识。第二项活动如下所示:
第七步:现在,打开你的第二个活动 java 文件,执行以下操作。
1.定义 TextView 变量,使用 findViewById()获取如上所示的 TextView。
receiver _ msg =(TextView)findwiewbyid(r . id . received _ value _ id);
2.现在在 second_activity.java 文件中,使用 message_key 通过 getStringExtra 方法创建 getTntent 对象以接收字符串类型变量中的值。
意向意向= GetEntent(); 字符串字符串
3.在第二个活动 xml 文件的 TextView 对象中设置的接收值
receiver _ msg . settext(str);
第 8 步:现在运行应用程序,操作如下:
- 当应用程序打开时,它会显示“输入”编辑文本。输入发送的值。
- 单击发送按钮,消息将显示在第二个屏幕上。
以下是应用程序的完整代码。
文件名:activity_first_activity.xml
可扩展标记语言
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".first_activity">
<EditText
android:id="@+id/send_text_id"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:textSize="25dp"
android:hint="Input"
android:textStyle="bold"
android:layout_marginTop="20dp"
android:layout_marginLeft="40dp"/>
<Button
android:id="@+id/send_button_id"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="send"
android:textStyle="bold"
android:layout_marginTop="150dp"
android:layout_marginLeft="150dp"/>
</RelativeLayout>
文件名:First_Activity.java
Java 语言(一种计算机语言,尤用于创建网站)
package org.geeksforgeeks.navedmalik.sendthedata;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class first_activity extends AppCompatActivity {
// define the variable
Button send_button;
EditText send_text;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first_activity);
send_button = (Button)findViewById(R.id.send_button_id);
send_text = (EditText)findViewById(R.id.send_text_id);
// add the OnClickListener in sender button
// after clicked this button following Instruction will run
send_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
// get the value which input by user in EditText
// and convert it to string
String str = send_text.getText().toString();
// Create the Intent object of this class Context() to Second_activity class
Intent intent = new Intent(getApplicationContext(), Second_activity.class);
// now by putExtra method put the value in key, value pair
// key is message_key by this key we will receive the value, and put the string
intent.putExtra("message_key", str);
// start the Intent
startActivity(intent);
}
});
}
}
文件名:activity _ second _ activity . XML
可扩展标记语言
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="org.geeksforgeeks.navedmalik.sendthedata.Second_activity">
<TextView
android:id="@+id/received_value_id"
android:layout_width="300dp"
android:layout_height="50dp"
android:textStyle="bold"
android:textSize="40dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="40dp"/>
</RelativeLayout>
文件名:Second_Activity.java
Java 语言(一种计算机语言,尤用于创建网站)
package org.geeksforgeeks.navedmalik.sendthedata;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class Second_activity extends AppCompatActivity {
TextView receiver_msg;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_activity);
receiver_msg = (TextView)findViewById(R.id.received_value_id);
// create the get Intent object
Intent intent = getIntent();
// receive the value by getStringExtra() method
// and key must be same which is send by first activity
String str = intent.getStringExtra("message_key");
// display the string into textView
receiver_msg.setText(str);
}
}
输出:
版权属于:月萌API www.moonapi.com,转载请注明出处