Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android:Activity數據傳遞之對象(Serializable)

android:Activity數據傳遞之對象(Serializable)

編輯:關於Android編程

Activity數據傳遞之基本數據類型在這篇文章中,我寫了通過putExtra()方法在activity之間傳遞基本數據類型

但是如果我們想傳遞對象還用這種方法會發現報錯,因為putExtra()不能接收Obj對象類型的

就像下面這樣 我們創建一個Obj對象

package com.example.activity;

public class Obj {
	String name;
	public String getName(){
		return name;
	}
	public void setName(String name){
		this.name=name;
	}
}
如果還是像傳遞基本數據類型那樣 我們看看

 

\

會報錯,那麼怎麼解決呢 ?按著alt+/打開android的聯想功能 我們會發現這個方法

 

putExtra(String name, Seralizable value)

putExtra可以傳遞可序列化的對象,所以我們只要在Obj類中實現這個接口就行了

 

下面附上運行結果

\\

在這裡只附上MainActivity OtherActivity Obj 三個類 

MainActivity

package com.example.activity;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button button;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button=(Button) findViewById(R.id.button1);
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent=new Intent();
				intent.setClass(MainActivity.this, OtherActivity.class);
				Obj obj=new Obj();
				obj.setName("我是蘇蘇");
				intent.putExtra("姓名", obj);
				startActivity(intent);
			}
		});
	}

}
OtherActivity
package com.example.activity;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class OtherActivity extends Activity{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_other);
		Bundle bundle=getIntent().getExtras();
		Obj obj=(Obj) bundle.get("姓名");
		Toast.makeText(OtherActivity.this, obj.getName(), Toast.LENGTH_LONG).show();
	}
}

Obj
package com.example.activity;

import java.io.Serializable;

public class Obj implements Serializable{
	String name;
	public String getName(){
		return name;
	}
	public void setName(String name){
		this.name=name;
	}
}
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved