Android开发从入门到放弃(1)在Activity之间传递数据
来源:互联网 发布:批量注册淘宝号 编辑:程序博客网 时间:2024/05/18 02:35
在本篇博客中,我将做一个简单的Android APP,用于演示以下内容:
- 如何与文本框等基本控件交互
- 如何启动另一个Activity
- 如何向另一个Activity传递数据
- 如何接收另一个Activity的返回数据
打开Android Studio,选择菜单File=>New=>New Project,Applicatin Name框中输入activityswitcher,Company Domain框中输入zdk.example.com(读者可以随便输入名字),点击Next,然后再点击Next,在Add an Activity to Mobile页,选择Empty Activity,点击Next,在Customize the Activity页,保持默认的名字MainActivity,直接点击Finish。
接下来,开始修改MainActivity。首先,打开app/res/layout/activity_main.xml文件,将内容修改为
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.zdk.activityswitcher.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/txtInfo"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClickSwitchActivity" android:text="open second activity"/></LinearLayout>
然后打开app/java/com.example.zdk.activityswitcher/MainActivity类,将代码修改为
package com.example.zdk.activityswitcher;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public static String INFO_KEY = "INFO-KEY"; public void onClickSwitchActivity(View view){ EditText txtInfo = (EditText) findViewById(R.id.txtInfo); String str = txtInfo.getText().toString(); Intent intent = new Intent(this , MySecondActivity.class); intent.putExtra(INFO_KEY,str); startActivityForResult(intent,1); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Toast.makeText(this,data.getStringExtra("msg"),Toast.LENGTH_LONG).show(); }}
以上代码的大概逻辑是:你在文本框中输入点内容,然后点击open second activity按钮,在onClickSwitchActivity
方法中,首先获取文本框中输入的内容,然后实例化一个Intent,将输入的内容放到intent对象中,最后通过startActivityForResult
方法启动另一个Activity,并且等待Activity返回。
下面重载了onActivityResult
方法,当另一个Activity返回结果时,此方法会被调用。此方法获取到Activity的返回值并通过Toast显示出来。
接下来,在Project窗口内选中app文件夹,然后右键选择菜单New =>Activity =>Empty Activity,输入MySecondActivity,点击Finish。
打开activity_my_second.xml,将代码修改为:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_my_second" 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" android:orientation="vertical" tools:context="com.example.zdk.activityswitcher.MySecondActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txtMessage" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="back" android:onClick="backClick"/></LinearLayout>
然后打开MySecondActivity.java,将代码修改为
package com.example.zdk.activityswitcher;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.TextView;public class MySecondActivity extends AppCompatActivity { String msg =""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_second); msg = getIntent().getStringExtra(MainActivity.INFO_KEY); TextView textView = (TextView) findViewById(R.id.txtMessage); textView.setText(msg); } public void backClick(View view){ Intent returnIntent = new Intent(); returnIntent.putExtra("msg","hello,"+msg); setResult(1,returnIntent); finish(); }}
在上面的代码中,在onCreate
方法中,获取到intent中传递过来的输入显示在界面的TextViwe控件中。
点击按钮后,在backClick
方法中,创建一个新的Intent对象,并传递给setResult
方法,该方法用于指定Activity的返回Code以及返回值。最后,调用finish
方法关闭当前Activity。
罗列了这么多代码,你看懂了吗?祝你的Android开发之路从入门到放弃,不谢!
- Android开发从入门到放弃(1)在Activity之间传递数据
- android从入门到放弃1--Activity&Fragment
- Android开发从入门到放弃(2)保存Activity的状态
- Android开发从入门到放弃(3)使用SharedPreferences保存数据
- Android开发之使用Intent在Activity之间传递数据
- Android开发从入门到放弃(4)使用RelativiLayout
- Android开发从入门到放弃(5)使用LinearLayout
- Android开发从入门到放弃(6)使用TableLayout
- Android开发从入门到放弃(7)使用GridLayout
- Android开发从入门到放弃(10)适配GridView
- Android 在两个 Activity 之间传递数据
- Android 在Activity之间传递数据
- android开发之 Activity之间数据传递
- Android 开发之Activity之间传递数据
- Android 开发之activity之间传递数据
- android 开发之activity之间传递数据
- android 开发之activity之间传递数据
- android 开发之activity之间传递数据
- JTree添加选中事件
- Swing JTextArea避免自动缩放的做法
- 《Redis官方文档》用Redis构建分布式锁
- 欧拉计划 36
- Palindromic Number
- Android开发从入门到放弃(1)在Activity之间传递数据
- 一起talk C栗子吧(第一百九十五回:C语言实例--DIY less命令四 )
- 如何启动另一个Activity
- 从零开始学习Android开发-创建第一个App
- 第七届蓝桥杯 方格填数
- OnDraw()和OnPaint()有什么区别?
- 03-JS特效-三大系列之scroll系列
- 海航生态科技舆情大数据平台容器化改造
- Android音频的播放