使用Bundle在Activity之間交換資料
fragment_main.xml
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.xwy.xinxi.MainActivity$PlaceholderFragment"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="使用者名稱:" />
<EditText
android:id="@+id/user"
android:minWidth="200px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密碼:" />
<EditText
android:id="@+id/pwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="200px"
android:inputType="textPassword" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="確認密碼:" />
<EditText
android:id="@+id/repwd"
android:minWidth="200px"
android:inputType="textPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="E-mail地址:" />
<EditText
android:id="@+id/email"
android:minWidth="400px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交" />
</LinearLayout>
MainActivity.java
package com.xwy.xinxi;
import android.support.v4.app.Fragment;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
final public int CODE = 0x717;//定義一個請求碼
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
Button submit = (Button) findViewById(R.id.submit);
submit.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String user = ((TextView)findViewById(R.id.user)).getText().toString();
String pwd = ((EditText)findViewById(R.id.pwd)).getText().toString();
String repwd=((EditText)findViewById(R.id.repwd)).getText().toString(); //獲取輸入的確認密碼
String email=((EditText)findViewById(R.id.email)).getText().toString(); //獲取輸入的E-mail地址
if(!"".equals(user) && !"".equals(pwd) && !"".equals(email)){
if(!pwd.equals(repwd)){
Toast.makeText(MainActivity.this, "2次輸入密碼不一樣,請重新輸入", Toast.LENGTH_SHORT).show();
((EditText)findViewById(R.id.pwd)).setText("");
((EditText)findViewById(R.id.repwd)).setText("");
((EditText)findViewById(R.id.pwd)).getResources();//讓密碼框獲取焦點
}else{//將輸入的資訊儲存到Bundle中並啟動一個新的Activity顯示輸入的使用者註冊資訊
Intent intent = new Intent(MainActivity.this,RegisterActivity.class);
Bundle bundle = new Bundle();
bundle.putCharSequence("user", user);//儲存使用者名稱
bundle.putCharSequence("pwd", pwd);
bundle.putCharSequence("email", email);
intent.putExtras(bundle);//將bundle物件新增到Intent物件中
startActivity(intent);//啟動新的Activity
}
}else{
Toast.makeText(MainActivity.this, "請將資訊輸入完整", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==CODE && resultCode==CODE){
((EditText)findViewById(R.id.pwd)).setText("");
((EditText)findViewById(R.id.repwd)).setText("");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}
}
register.sml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10px"
android:text="使用者名稱:" />
<TextView
android:id="@+id/pwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10px"
android:text="密碼:" />
<TextView
android:id="@+id/email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10px"
android:text="E-main:" />
<Button
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回上一步"/>
</LinearLayout>
RegisterActivity.java
package com.xwy.xinxi;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class RegisterActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);//設定該activity中要顯示的內容檢視
final Intent intent = getIntent();//獲取Intent物件
Bundle bundle = intent.getExtras();//獲取傳遞的資料包
TextView user = (TextView) findViewById(R.id.user);//獲取顯示使用者名稱的TextView元件
user.setText("使用者名稱:"+bundle.getString("user"));//獲取輸入的使用者名稱並顯示到TextView元件中
TextView pwd = (TextView) findViewById(R.id.pwd);
pwd.setText("密碼:"+bundle.getString("pwd"));
TextView email = (TextView) findViewById(R.id.email);
email.setText("E-mail:"+bundle.getString("email"));
Button button = (Button) findViewById(R.id.back);//獲取“返回上一部”按鈕
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
setResult(0x717,intent);//設定返回的結果碼,並返回撥用該Activity的Activity
finish();
}
});
}
}
在Mainfest中配置
<activity
android:label="顯示使用者註冊資訊"
android:icon="@drawable/ic_launcher"
android:name=".RegisterActivity"></activity>
相關文章
- bundle實現Activity之間的資料傳遞
- 關於Activity之間傳送資料
- Activity onSaveInstanceState(Bundle)
- 在.NET使用JSON作為資料交換格式JSON
- 從0系統學Android-2.3使用 Intent 在 Activity 之間穿梭AndroidIntent
- Android在多個Activity之間共享一個ViewAndroidView
- activity之間的跳轉
- 在資料庫之間移動表空間資料庫
- 使用exchange partition來交換不同schema之間的表
- 如何使用 Protobuf 做資料交換
- Activity之間的通訊方式
- 使用bundle管理多版本Cocoapods之間的協助開發
- 在兩個資料庫之間進行資料同步資料庫
- 不同的activity使用bundle物件傳值給廣播接收器物件
- 使用RMAN在ASM和檔案系統之間複製資料ASM
- 使用rman在oracle ASM磁碟組之間移動資料檔案OracleASM
- 使用RMAN在ASM和檔案系統之間拷貝資料ASM
- Oracle使用資料泵在異機之間匯出匯入表Oracle
- android 中Service 和activity之間的資料傳遞的幾種方法Android
- Python多程式之資料交換PipePython
- 原始碼分析:Exchanger之資料交換器原始碼
- Unity AssetBundle,Asset,GameObject之間的聯絡UnityGAMObject
- Activity基類實現儲存Bundle資料,避免空指標及重複勞動指標
- 交換資料
- 地理空間資料Geometry在MySQL中使用MySql
- postman(五):在不同介面之間傳遞資料Postman
- 使用物化檢視實現在不同字符集的資料庫之間的資料同步資料庫
- 使用impdp實現資料在不同使用者、不同例項之間快速複製
- flask非同步資料交換celery的使用Flask非同步
- 口碑 App 各 Bundle 之間的依賴分析指南APP
- Activity、View、Window之間關係的分析View
- Oracle使用資料泵在異機之間匯出匯入多個 schemaOracle
- 在同一個Activity下實現兩個Fragment之間的通訊Fragment
- iOS-生成Bundle包-引入bundle-使用bundleiOS
- [譯] 在 Laravel 應用程式之間共享資料庫Laravel資料庫
- 資料遊戲:愛與恨只在一線之間遊戲
- 在 SIBus 和 WebSphere MQ 之間進行簡單的訊息交換WebMQ
- 簡單的在兩個activity中傳遞資料