zoukankan      html  css  js  c++  java
  • android页面间传递对象

    android传递对象有两种方式:

    一种是Serializable和Parcelable

    对于第一种方式:

    import java.io.Serializable;


    public class ShopData implements Serializable {
    public String shopId;
    public String name;
    public String url;
    public String info;


    public String getShopId() {
    return shopId;
    }


    public void setShopId(String shopId) {
    this.shopId = shopId;
    }


    public String getName() {
    return name;
    }


    public void setName(String name) {
    this.name = name;
    }


    public String getUrl() {
    return url;
    }


    public void setUrl(String url) {
    this.url = url;
    }


    public String getInfo() {
    return info;
    }


    public void setInfo(String info) {
    this.info = info;
    }


    }

    传递值的时候这样来传递:

    	<span style="white-space:pre">			</span>Intent intent = new Intent();
    				ShopData shopData = (ShopData)mAdapter.getItem(position);
    //				intent.putExtra("detail", shopData);
    				Bundle bundle = new Bundle();
    				bundle.putSerializable("shop", shopData);
    				intent.putExtra("detail", shopData);
    				intent.setClass(MainActivity.this, DetailShopActivity.class);
    				MainActivity.this.startActivity(intent);
    取值的时候:

    <span style="white-space:pre">		</span>Intent intent = getIntent();
    //		ShopData data = intent.getParcelableExtra("detail");
    		ShopData data = (ShopData)intent.getSerializableExtra("detail");

    对于另外一种方式:

    import android.os.Parcel;
    import android.os.Parcelable;
    
    public class ShopData implements Parcelable{
    
    	public String shopId;
    	public String name;
    	public String url;
    	public String info;
    
    	public ShopData(Parcel in) {
    		readFromParcel(in);
    	}
    	
    	public ShopData() {
    	}
    	
    
    	public static final Parcelable.Creator<ShopData> CREATOR = new Parcelable.Creator<ShopData>() {
    		
    		public ShopData createFromParcel( Parcel in ){
    			return new ShopData(in);
    		}
    		
    		public ShopData[] newArray( int size){
    			return new ShopData[size];
    		}
    	};
    	
    	@Override
    	public int describeContents() {
    		return 0;
    	}
    
    	@Override
    	public void writeToParcel(Parcel dest, int flags) {
    		dest.writeString(shopId);
    		dest.writeString(name);
    		dest.writeString(url);
    		dest.writeString(info);
    		
    	}
    	public void readFromParcel( Parcel in ){
    		shopId = in.readString();
    		name = in.readString();
    		url = in.readString();
    		info = in.readString();
    	}
    	
    }

    传递的时候这样写:

    	<span style="white-space:pre">			</span>Intent intent = new Intent();
    				ShopData shopData = (ShopData)mAdapter.getItem(position);
    				intent.putExtra("detail", shopData);
    				intent.putExtra("detail", shopData);
    				intent.setClass(MainActivity.this, DetailShopActivity.class);
    				MainActivity.this.startActivity(intent);


    取值的时候:

    <span style="white-space:pre">		</span>Intent intent = getIntent();
    		ShopData data = intent.getParcelableExtra("detail");



  • 相关阅读:
    android studio 各种问题
    关于Android开发中Arm、X86和Mips(草稿)
    每日更新
    Error creating bean with name 'userRepository': Invocation of init method failed;
    API 'variant.getJavaCompiler()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'
    increase the minSdkVersion to 26
    Exception thrown on Scheduler.Worker thread. Add `onError` handling
    M600 Pro 安装问题解决
    Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed.
    大疆无人机M100相关问题解决过程
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6796304.html
Copyright © 2011-2022 走看看