成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android中怎么實現(xiàn)Activity間傳遞參數(shù)-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)Android 中怎么實現(xiàn)Activity 間傳遞參數(shù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

成都網(wǎng)站建設(shè)、網(wǎng)站制作的關(guān)注點不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給成都創(chuàng)新互聯(lián)一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。

1.傳遞簡單數(shù)據(jù)

在A Activity中

findViewById(R.id.startBActicityBtn).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        Intent i = new Intent(MainActivity.this,TheActivity.class);
//        對基礎(chǔ)的數(shù)據(jù)類型進行傳遞
       i.putExtra("data","我是國人");
       startActivity(i);
      }
    });

在B Activity中接受數(shù)據(jù)

  tv =(TextView)findViewById(R.id.TheTextView);
    Intent i = getIntent();
    tv.setText(i.getStringExtra("data"));

這種傳值就是傳遞基本的數(shù)據(jù)類型

2.傳遞數(shù)據(jù) 包Bundle

在A Activity中

 findViewById(R.id.startBActicityBtn).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        Intent i = new Intent(MainActivity.this,TheActivity.class);
        Bundle bundle = new Bundle();
        bundle.putString("name","qll");
        bundle.putInt("age",3);

//        i.putExtras(bundle); 
//        另種傳遞方式
        i.putExtra("data",bundle);
        startActivity(i);
      }
    });
  }

在B Activity中接受數(shù)據(jù)   

 tv =(TextView)findViewById(R.id.TheTextView);
    editText = (EditText) findViewById(R.id.editText3);
    Intent i = getIntent();
//    Bundle date = i.getExtras();
//     接受方式不同
    Bundle date = i.getBundleExtra("data");
    tv.setText(String.format("name=%s,age=%d",date.getString("name"),date.getInt("age")));

這總傳遞方式類似iOS中傳遞字典數(shù)據(jù)類型過來 。

3.傳遞值對象

自定義一個User類,傳遞自定義類需要對類進行序列化

用Serializable進行序列化

這種方法只需要類實現(xiàn)Serializable接口就可以了

User 類

import java.io.Serializable;

public class User implements Serializable{

  private String name;
  private int age;

  public int getAge(){
    return age;
  }

  public void setAge(int age){
    this.age = age;
  }

  public String getName(){
    return name;
  }

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

  public User(String name,int age){
    this.name = name;
    this.age = age;
  }

在A Activity中 

  findViewById(R.id.startBActicityBtn).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        Intent i = new Intent(MainActivity.this,TheActivity.class);
        i.putExtra("user",new User("qll",24));
        startActivity(i);
      }
    });
  }

在B Activity中

 tv =(TextView)findViewById(R.id.TheTextView);
 User user = (User)i.getSerializableExtra("user");
 tv.setText(String.format("user info(name=%s,age=%d)",user.getName(),user.getAge()));

用Parcelable實現(xiàn)

同樣的需要實現(xiàn)Parcelable接口

User 類

package com.example.wyhaiapple.transferdata1;

import android.os.Parcel;
import android.os.Parcelable;
import android.text.ParcelableSpan;

public class User implements Parcelable{
  private String name;
  private int age;

  public int getAge(){
    return age;
  }

  public void setAge(int age){
    this.age = age;
  }

  public String getName(){
    return name;
  }

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

  public User(String name,int age){
    this.name = name;
    this.age = age;
  }

  @Override
  public int describeContents() {
    return 0;
  }

  @Override
  public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(getName());
    dest.writeInt(getAge());
  }


  public static final Creator<User> CREATOR = new Creator<User>() {
    @Override
    public User createFromParcel(Parcel source) {
      return new User(source.readString(),source.readInt());
    }

    @Override
    public User[] newArray(int size) {
      return new User[size];
    }
  };
}

在A Activity中 與上面的相同

在B Activity中

 tv =(TextView)findViewById(R.id.TheTextView);
 User user = (User)i.getParcelableExtra("user");
 tv.setText(String.format("user info(name=%s,age=%d)",user.getName(),user.getAge()));

4.獲取 Activity 的返回參數(shù)

在B Activity中

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_the);
    tv =(TextView)findViewById(R.id.TheTextView);
    editText = (EditText) findViewById(R.id.editText3);

    findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        Intent i = new Intent();
        i.putExtra("data",editText.getText().toString());
        setResult(1,i);
        finish();
      }
    });
  }
}

在A Activity中

startActivityForResult(i,0);

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    textView.setText("返回的值:"+data.getStringExtra("data"));
  }

關(guān)于Android 中怎么實現(xiàn)Activity 間傳遞參數(shù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享文章:Android中怎么實現(xiàn)Activity間傳遞參數(shù)-創(chuàng)新互聯(lián)
本文路徑:http://jinyejixie.com/article28/djchjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、定制網(wǎng)站網(wǎng)站改版、搜索引擎優(yōu)化、商城網(wǎng)站面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
正宁县| 成武县| 天祝| 上杭县| 获嘉县| 孙吴县| 广德县| 交口县| 小金县| 闸北区| 陇西县| 太和县| 江川县| 朝阳县| 祁东县| 彰化市| 安岳县| 锡林浩特市| 蚌埠市| 广丰县| 玉林市| 内江市| 姚安县| 富民县| 双柏县| 万州区| 彭州市| 连平县| 荥阳市| 嫩江县| 隆林| 曲周县| 巴楚县| 宁强县| 福海县| 疏附县| 洪雅县| 太湖县| 德钦县| 曲阜市| 光泽县|