通过Intent启动Activity、获取Activity返回值

来源:互联网 发布:英国皇家芭蕾舞团 知乎 编辑:程序博客网 时间:2024/06/06 02:33

父Activity:MainActivity.java

package com.example.test61;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {    Button button,button2;    TextView textView;    private final int SUBACTIVITY1 = 1 , SUBACTIVITY2 = 2; //requestCode请求码    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        button = (Button)findViewById(R.id.btn);        button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Intent intent = new Intent(MainActivity.this, NewActivity.class);//startActivity(intent);startActivityForResult(intent, SUBACTIVITY1);  //启动子Activity}});                button2 = (Button)findViewById(R.id.btn2);        button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.baidu.com"));//startActivity(intent);startActivityForResult(intent, SUBACTIVITY2);   }});    }      //重载方法,接受返回值@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);switch (requestCode) {case SUBACTIVITY1:  if(resultCode==Activity.RESULT_OK){                Uri uriData = data.getData();                textView = (TextView)findViewById(R.id.tv);                textView.setText(uriData.toString());}else if(requestCode==Activity.RESULT_CANCELED){}break;case SUBACTIVITY2:if(resultCode==Activity.RESULT_OK){Uri uriData = data.getData();}break;default:break;}}            }

xml布局:

<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"    android:orientation="vertical" >    <TextView         android:id="@+id/tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text=""        />            <Button        android:id="@+id/btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="启动Activity" />    <Button        android:id="@+id/btn2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="启动Activity2" /></LinearLayout>


子Activity:NewActivity.java

package com.example.test61;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class NewActivity extends Activity {EditText dEditText;Button button1,button2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_new);                dEditText = (EditText)findViewById(R.id.edit);        button1 = (Button)findViewById(R.id.btn1);        button2 = (Button)findViewById(R.id.btn2);                button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {        Uri data = Uri.parse("tel:15082387826");        Intent intent = new Intent(null,data);        intent.putExtra("address", "JD Street"); //添加额外的值        setResult(RESULT_OK,intent); //返回子Activity的值        finish();}});                button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {setResult(RESULT_CANCELED,null);finish();}});    }}
xml布局:

<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"    android:orientation="vertical" >        <EditText        android:id="@+id/edit"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text=""        />                    <Button             android:id="@+id/btn1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="接受"            />        <Button             android:id="@+id/btn2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="撤销"            />        </LinearLayout>
另外一个子Activity类似,这里不再累赘。


点击启动Activity:

点击接受:

 这里接受到返回值并输入



原创粉丝点击