#intent
记录以intent作为主要工具使用时,记录
[TOC]
##界面间的相互跳转
**步骤**
###1. 创建两个activity文件,分别包含两个xml资源文件。
###2. 在AndroidManifest.xml ,注册两个actvity, 代码效果如下:
~~~
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sowsceo.www.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"> <!-- 主Activity界面 -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Main2Activity"></activity> <!-- 第二个Activity界面 -->
</application>
</manifest>
~~~
###3. 在两个xml资源文件中,编写组件。
####1. MainActivity的activity_main资源文件的代码如下:
~~~
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="com.sowsceo.www.myapplication.MainActivity">
<Button
android:onClick="onClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="进入第二个界面" />
</LinearLayout>
~~~
####2. Main2Activity的activity_main资源文件,其代码如下:
~~~
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="com.sowsceo.www.myapplication.MainActivity">
<Button
android:onClick="onClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="进入第一个界面" />
</LinearLayout>
~~~
####3. MainActivity的业务逻辑,其代码如下:
~~~
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view){
Intent intent = new Intent(this,Main2Activity.class);
startActivity(intent);
}
}
~~~
####4. Main2Activity的业务逻辑,其代码如下:
~~~
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view){
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
}
}
~~~
###4. 效果
![](https://box.kancloud.cn/38a249fa907110eb17f5694f31ac96b0_1080x1920.jpg)
![](https://box.kancloud.cn/0ef973bb251f3912973015a9ffb5f908_1080x1920.jpg)
##界面间的数据传递
为了减少重复性的工作行为,本功能说明,将基于“界面间的相互跳转”进行修改。
###1. 创建两个activity文件,分别包含两个xml资源文件。
###2. 在AndroidManifest.xml ,注册两个actvity, 代码效果如下:
###3. 在两个xml资源文件中,编写组件。
####1. MainActivity的activity_main资源文件的代码如下:
~~~
<EditText
android:id="@+id/edi"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:onClick="onClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="进入第二个界面" />
~~~ ``
####2. Main2Activity的activity_main资源文件`
接收信息,组件不在这里实现,在业务逻辑文件中实现
####3. MainActivity的业务逻辑,其代码如下:
~~~
public class MainActivity extends AppCompatActivity {
private static final String EXTRA_ERSSAGE = "com.sowsceo.www.myapplication";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view){
Intent intent = new Intent(this,Main2Activity.class);
EditText editText = (EditText) findViewById(R.id.edi);
String message = editText.getText().toString().trim();
intent.putExtra(EXTRA_ERSSAGE,message);
startActivity(intent);
}
}
~~~
####4. Main2Activity的业务逻辑,其代码如下:
~~~
private static final Object EXTRA_MESSAGE = "com.sowsceo.www.myapplication";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
// Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra((String) Main2Activity.EXTRA_MESSAGE);
//Create the text view
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
}
~~~
###4. 效果
![](image/Screenshot_20161117-195627.jpg)
![](https://box.kancloud.cn/01c3b234cebc12951e6c72e77152ce00_1080x1920.jpg)
* * * * *
## activity 与 Framgent 通信
Framgent向Activity发出通信
不管是Framgent外的Activity,还是包含Fragment的Activity
Activity向Framgent发出通信
只能是包含Fragment的Activity
不能是Framgent外的Activity,如果要通信,条件是:“Framgent外的Activity”向“包含Fragment的Activity”通信并提供指示,然后“包含Fragment的Activity”根据指示,向相应的Fragment通信
![](https://box.kancloud.cn/12f8053b383299002cf0ba18dc04a910_950x662.png)
[使用教程](http://www.cnblogs.com/blll/p/4635107.html)
- 适合你
- 背景
- 正文
- 灵感
- 公司的整体介绍
- 商业模式
- 竞争与合作
- 竞争
- 竞争者的故事
- 产品
- 软件开发
- 获取网络代码
- 开发文档
- 数据库设计
- app实现
- 模块划分
- 流程图
- 命名规范
- id命名
- 效果图
- 颜色
- 文件划分
- 文件创建
- Logo
- 字体设置
- 代码库
- android的功能代码
- intent
- Spinner 下拉框
- Snackbar 与 Tools 弹出提示词
- ViewPager 切换View
- ToolBar
- AppBarLayout 顶部栏
- ListView 与 BaseAdapter
- trim 清空多余的空格
- 获取代码的网站
- 开发问题记录
- 快捷键
- UI
- app设计
- android文件
- style.xml
- array.xml
- 硬件开发
- 垃圾箱
- 库存
- 市场
- 用户群体
- 问题
- 模块
- 图书馆
- 我的书籍
- (活动列表)书籍交流
- 用户
- 需求分析
- 危机感
- 用户及系统的操作流程
- 图片大全