android--Activity有返回值的跳轉


AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hanqi.test4">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity"

            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Main2Activity"></activity>
    </application>

</manifest>

MainActivity

package com.hanqi.test4;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

/**
 * Created by Administrator on 2016/3/21.
 */
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


    setContentView(R.layout.main_layout);

    }
    //普通方式
    public void ONCLICK(View v)
    {
        Log.e("T4TAG","按鈕的點擊監聽被觸發");
        //靜態方法
        //直接用類名就可以調用,不需要實例化
        //構建了一個Toast實例
        //方法連
        Toast.makeText(this,"按鈕的點擊監聽被觸發",Toast.LENGTH_LONG).show();

//        Toast toast= Toast.makeText(this,"按鈕的點擊監聽被觸發",Toast.LENGTH_LONG);
//        toast.show();

        //用intent

        //取得要傳遞的信息
        //獲取View實例
        EditText myet=(EditText)findViewById(R.id.myet);

        String string= myet.getText().toString();

        Intent intent= new Intent(this,Main2Activity.class);
        //存儲內容
        //getExtra Bundle 實際是一個HashMap  進行了限制
        //intent.getExtras().putString("myet",string);
        intent.putExtra("myet",string);

        startActivity(intent);
    }
    //帶返回的方式

    public void onCLICK(View v)
    {
        EditText myet=(EditText)findViewById(R.id.myet);

        String string= myet.getText().toString();

        Intent intent= new Intent(this,Main2Activity.class);
        //存儲內容
        //getExtra Bundle 實際是一個HashMap  進行了限制
        //intent.getExtras().putString("myet",string);
        intent.putExtra("myet",string);
        //有返回數據的啟動方式
        //第一個參數  intent
        //第二個參數  requestCode  請求碼
        startActivityForResult(intent, 1);
    }
    //重寫   處理返回信息的監聽(回調方法)
    //onActivityResult通用監聽  監聽所有返回信息的
    //必須要有requestCode區分有哪個請求返回的
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        Log.e("TAG","requestCode="+requestCode+"resultCode"+resultCode);
        if (requestCode ==1 )
        {
            if (resultCode == RESULT_OK)
            {
                //獲取返回信息
                String string = data.getExtras().getString("mytv");

                EditText editText =(EditText)findViewById(R.id.myet);

                editText.setText(string);
                Toast.makeText(this, "返回信息=" + string, Toast.LENGTH_LONG);
            }
            else {
                Toast.makeText(this,"返回信息有問題",Toast.LENGTH_SHORT);
            }
        }

    }
}

main_layout.xml

<?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">


    <EditText
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:id="@+id/myet"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="普通方式"
        android:onClick="ONCLICK"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="帶返回方式"
        android:onClick="onCLICK"
        />
</LinearLayout>

Main2Activity

package com.hanqi.test4;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        //接受信息
        //獲取意圖
        //傳遞過來的Intent
        Intent intent=getIntent();

        String s = intent.getExtras().getString("myet");

        EditText mytv=(EditText)findViewById(R.id.mytv);



        mytv.setText(s);
    }
    //普通返回
    public void onclick(View V)
    {
        //關閉當前activity
        finish();
    }
    public void ONclock(View v)
    {
        //存儲返回數據   也要用intent
        EditText mytv=(EditText)findViewById(R.id.mytv);
        Bundle bundle =new Bundle();
        bundle.putString("mytv",mytv.getText().toString());

        //設置返回數據
        // 先設置ReaultCode,再設置存儲數據的意圖
        setResult(RESULT_OK,new Intent().putExtra("mytv",mytv.getText().toString()));
        //關閉當前activity
        finish();
    }
}

activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context="com.hanqi.test4.Main2Activity">


    <EditText
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="測試"

        android:id="@+id/mytv"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="普通返回"
        android:onClick="onclick"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="帶數據返回"
        android:onClick="ONclock"
        />
</LinearLayout>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM