在android中实现页面中数据的传递有两种方式:
1:第一种数据传递的方式是通过inputExtra方法来进行数据的传递的
2:第二中方法是通过bundle的方法来实现数据的传递的
接下来我们首先来讲解一下数据传递的第一种方式就是通过inputExtra
的方式来实现数据的传递。
步骤:
第一步就是在MainActivity中使用Intent.putExtra来编写要传递的数据信息
第二步就是在想要接受数据的Activity中编写程序接收信息
好的接下来我没使用代码的方式来进行演练:
1:在MainActivity.java中编写将要传递的数据
intent.putExtra("name","value");
2:在想要接收数据的Activity中接收数据
Intent intent = getIntent();//获取intent对象
//将获取到的对象赋值给name
String name = intent.getStringExtra("name")
//将获取到的对象显示在页面即是在页面跳转的同时将对象显示出来
//这里用到的是Toast.maketext方法
Toast.maketext(SecondActivity.this“此处指代的是获取到的对象”,"获取到的对象名为"+name,Toast.length_logs).show();
到此我们在android中使用putExtra方法获取对象就完毕了。接下来是完整的代码演示
MainActivity中的代码:
package com.example.one;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Switch;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//为跳转的页面设置单机响应事件,使用接口的方式去实现
findViewById(R.id.start).setOnClickListener(this);
findViewById(R.id.start2).setOnClickListener(this);
//在此处设置单机的点击事件完毕
}
@Override
public void onClick(View view) {
//使用switch case的方式去实现activity的开启和关闭
switch(view.getId()) {
case R.id.start://使用显式布局的方式来实现页面的跳转
//使用显示以土地额方式实现页面的跳转也是要创建Intent对象
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
//第一个参数和开启关闭activity一样都是上下文的信息,第二个参数就是要开启的页面
//使用putExtra方法获得数据的回显
intent.putExtra("Demo", "你的名字");
//使用putExtra方法将数据传递到第二个页面,接下来我们要在第二个页面接受数据
startActivity(intent);
break;
case R.id.start2://使用显式布局的方式来实现页面的跳转
Intent intent1 = new Intent(MainActivity.this,ThreeActivity.class);
startActivity(intent1);
break;
//既然它的run的速度这么慢的话我们就先来了解一些概念性的东西
/*
* Inntent也称为意图可以实现程序中不同的组件中的数据的交互,不仅可以指定当前组件要完成的动作,还可以实现不同组件之间的数据的交互
* 它的意图有显示的意图还有隐式的意图,显示的意图就是直接通过名称的方式来打开指定的activity,隐式的意图就是指通过action和category的方式
* 系统通过分析然后找到指定的activity。
* */
}
}
}
package com.example.one;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
//在这个页面接受数据
// 第一步:获取intent对象,在这个位置要注意将包导入进去
Intent intent = getIntent();
//使用getStringExtra方法将获取传递过来的数据的名称我们可以看到我们已将数据的名称获取进来了
//记住在此处获取到它的对象后记得要将它的对象赋值个name或是其他的什么名称都行不然程序会报错
String name = intent.getStringExtra("Demo");
//使用Toast.maketext方法将数据显示出来
// Toast.makeText(SecondActivity.this,"获取到的名字为"+name,Toast.LENGTH_LONG).show();
Toast.makeText(SecondActivity.this,"获取到的名字为"+name,Toast.LENGTH_LONG).show();
}
}
android传递数据的第二中方式第二种传递数据的方式是bundle:
它传递数据的方式是:
第一步是创建bundle对象
Bundle bundle = new bundle();
第二步是使用bundle.putString方法将要传递数据的名和值传递进去
bundle.putString(name,value)
第三步就是将bundle对象封装进intent对象中,使用的是intent.putExtras方法
intent.putExtras(bundle)
这是传递数据部分
接受数据部分:
第一步就是获取bundle对象
Bundle bundle = getIntent().getExtras();
第二步就是将获取到的名字赋值个某个变量
String name = bundle.getString(“name”);
package com.example.one;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Switch;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//为跳转的页面设置单机响应事件,使用接口的方式去实现
findViewById(R.id.start).setOnClickListener(this);
findViewById(R.id.start2).setOnClickListener(this);
//在此处设置单机的点击事件完毕
}
@Override
public void onClick(View view) {
//使用switch case的方式去实现activity的开启和关闭
switch(view.getId()) {
case R.id.start://使用显式布局的方式来实现页面的跳转
//使用显示以土地额方式实现页面的跳转也是要创建Intent对象
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
//第一个参数和开启关闭activity一样都是上下文的信息,第二个参数就是要开启的页面
//使用putExtra方法获得数据的回显
intent.putExtra("Demo", "你的名字");
//使用putExtra方法将数据传递到第二个页面,接下来我们要在第二个页面接受数据
startActivity(intent);
break;
case R.id.start2://使用显式布局的方式来实现页面的跳转
Intent intent1 = new Intent(MainActivity.this,ThreeActivity.class);
//使用bundle的方式来将数据给thiee
//第一步创建bundle对象
Bundle bundle = new Bundle();
//第二步使用bundle.putString方法传递进来名和值
bundle.putString("name","第三个activity");
//第三步将bundle对象封装进intent对象中
intent1.putExtras(bundle);
startActivity(intent1);
break;
//既然它的run的速度这么慢的话我们就先来了解一些概念性的东西
/*
* Inntent也称为意图可以实现程序中不同的组件中的数据的交互,不仅可以指定当前组件要完成的动作,还可以实现不同组件之间的数据的交互
* 它的意图有显示的意图还有隐式的意图,显示的意图就是直接通过名称的方式来打开指定的activity,隐式的意图就是指通过action和category的方式
* 系统通过分析然后找到指定的activity。
* */
}
}
}
package com.example.one;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class ThreeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_three);
//获取传递过来的bundle数据
//获取bundle对象
Intent intent1 = getIntent();
Bundle bundle = intent1.getExtras();
//获取用户名
String name = bundle.getString("name");
//将数据显示出来
Toast.makeText(ThreeActivity.this,"获取到的用户名"+name,Toast.LENGTH_LONG).show();
}
}