亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android Activity之間信息的傳遞

發布時間:2020-07-01 04:42:40 來源:網絡 閱讀:622 作者:無用大叔 欄目:移動開發

    在Android中,活動是一個界面,當需要在界面之間相互切換的時候,需要用到Intent(意圖)進行消息傳遞。使用startActivity(Intent)函數啟動另一個活動。

    Bundle是一個key-Value類,可以用他攜帶信息。

    Bundle.putString("key","String")方法和Bundle.getString("key")方法放入與取出信息。

    可以將信息放入到Intent中,使用方法Intent.putExtras(bundle)方法和Intent.getExtras();方法將信息放入和取出。


示例工程:兩個.java,MainActivity,java中輸入字符串,點擊按鍵,啟動NewActivity,java,并將字符串顯示出來。

詳細代碼如下:

    MainActivity.java:

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
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.os.Build;
public class MainActivity extends Activity {
    EditText edittext;
    TextView textview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button botton1=(Button)this.findViewById(R.id.btn1);
        edittext=(EditText)this.findViewById(R.id.edit);
        textview=(TextView)this.findViewById(R.id.mytext1);
        botton1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent intent=new Intent(MainActivity.this,NewActivity.class);
                Bundle bundle=new Bundle();
                bundle.putString("name", edittext.getText().toString());
                intent.putExtras(bundle);
                startActivity(intent);
            }
        });
    }
}

NewActivity.java:

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 NewActivity extends Activity {
    TextView textview;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new);
        Button botton1=(Button)this.findViewById(R.id.btn2);
        textview=(TextView)this.findViewById(R.id.mytext3);
        Intent intent=getIntent();
        Bundle bundle=intent.getExtras();
        textview.setText(bundle.getString("name"));
        botton1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                startActivity(new Intent(NewActivity.this,MainActivity.class));
            }
        });
    }
}

activity_main:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView android:id="@+id/mytext1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="mainactivity"/>
    <EditText android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text=""/>
    <Button android:id="@+id/btn1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="tonew"/>    
</LinearLayout>

activity_new:

<?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/mytext2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="newactivity"/>
    <TextView android:id="@+id/mytext3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text=""/>
    <Button android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="tomain"/>
</LinearLayout>

效果如下:

Android Activity之間信息的傳遞  Android Activity之間信息的傳遞 

              

                            啟動Activity并返回結果

    有時候我們學院啟動一個Activity并返回其結果,這是我們應該使用方法:

startActivityForResult(Intent intent,int requestCode);

    通過重寫onActivityResult()對返回的參數進行處理,函數原型為:

protected void onActivityResult(int requestCode,int resultCode,Intent data)    //    請求碼與結果碼

    使用函數NewActivity.this.setResult(0,intent)和NewActivity.this.finish()設置返回參數


以上一個工程為基礎,添加代碼。使NewActivity.java中按鍵返回字符串,然后在MainActivity中把該字符串顯示出來。

代碼如下:

MainActivity

public class MainActivity extends Activity {
    EditText edittext;
    TextView textview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button botton1=(Button)this.findViewById(R.id.btn1);
        edittext=(EditText)this.findViewById(R.id.edit);
        textview=(TextView)this.findViewById(R.id.mytext1);
        botton1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent intent=new Intent(MainActivity.this,NewActivity.class);
                Bundle bundle=new Bundle();
                bundle.putString("name", edittext.getText().toString());
                intent.putExtras(bundle);
                startActivityForResult(intent,0);
            }
        });
    }
    protected void onActivityResult(int requestCode,int resultCode,Intent data) {
        Bundle bundle=data.getExtras();
        textview.setText(bundle.getString("name"));
    }
}

NewActivity:

public class NewActivity extends Activity {
    private TextView textview;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new);
        Button botton1=(Button)this.findViewById(R.id.btn2);
        textview=(TextView)this.findViewById(R.id.mytext3);
        Intent intent=getIntent();
        Bundle bundle=intent.getExtras();
        textview.setText(bundle.getString("name"));
        botton1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent intent=new Intent();
                Bundle bundle=new Bundle();
                bundle.putString("name", "I'm from New");
                intent.putExtras(bundle);
                NewActivity.this.setResult(0,intent);
                NewActivity.this.finish();
            }
        });
    }
}


效果如下:

Android Activity之間信息的傳遞Android Activity之間信息的傳遞

Android Activity之間信息的傳遞


                                請求碼與結果碼

    請求碼:當不同業務打開同一個Activity時,用請求碼判斷是那個業務發出的打開請求。

例如當一個MainActivity中兩個button都打開Activity1時,可以設置不同的請求碼,然后在Activity1中可根據不同請求碼判斷是button1還是button2打開的Activity1。


    結果碼:當同一個業務打開多個Activity時,用結果碼判斷是那個Activity返回的參數。

例如當MainActivity中button同時打開Activity1,Activity2,Activity3,可以在三個Activity中設置不同的結果碼,然后在MainActivity中的方法onActivityResult中根據結果碼判斷次結果是那個Activity返回的。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳谷县| 德安县| 靖江市| 河西区| 宣城市| 遂昌县| 怀柔区| 桓台县| 凤冈县| 鄂托克旗| 图片| 林口县| 邵阳市| 富平县| 彭阳县| 黄山市| 蕉岭县| 湘西| 涿鹿县| 浙江省| 永春县| 达州市| 华蓥市| 吉水县| 宜黄县| 克东县| 临潭县| 东明县| 通榆县| 双鸭山市| 岳西县| 文水县| 洛川县| 滕州市| 大港区| 海南省| 无为县| 赫章县| 延庆县| 宁远县| 瓮安县|