#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. 效果


##界面間的數據傳遞
為了減少重復性的工作行為,本功能說明,將基于“界面間的相互跳轉”進行修改。
###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. 效果


* * * * *
## activity 與 Framgent 通信
Framgent向Activity發出通信
不管是Framgent外的Activity,還是包含Fragment的Activity
Activity向Framgent發出通信
只能是包含Fragment的Activity
不能是Framgent外的Activity,如果要通信,條件是:“Framgent外的Activity”向“包含Fragment的Activity”通信并提供指示,然后“包含Fragment的Activity”根據指示,向相應的Fragment通信

[使用教程](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
- 硬件開發
- 垃圾箱
- 庫存
- 市場
- 用戶群體
- 問題
- 模塊
- 圖書館
- 我的書籍
- (活動列表)書籍交流
- 用戶
- 需求分析
- 危機感
- 用戶及系統的操作流程
- 圖片大全