Android---组件通信

要求:

设计一个主Activity和一个子Activity(Sub-Activity),使用主Activity上的按钮启动子Activity,并将子Activity的一些信息返回给主Activity,并显示在主Activity上。

可以自己设计界面和场景,也可以使用下面提供的内容:

主Activity界面上有一个“登录”按钮和一个用了显示信息的TextView,点击“登录”按钮后打开一个新的Activity,新Activity上面有输入用户名的控件,在用户关闭这个Activity后,将用户输入的用户名到主Activity,并显示在主Activity的TextView中。

一.AndroidManifest.xml中代码:

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

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SubActivity"
android:label="@string/app_name">
</activity>
</application>

</manifest>

 

二.java目录下代码:

有两个类:

1.MainActivity.java中的代码:

package com.example.administrator.myapplication;
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 MainActivity extends Activity {
private static final int SUBACTIVITY = 1;
public TextView show;
private void initComponent() {
show = (TextView)findViewById(R.id.text1);
final Button go = (Button)findViewById(R.id.b1);
go.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SubActivity.class);
startActivityForResult(intent, SUBACTIVITY);
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initComponent();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
show.setText("用户名:"+data.getData().toString());
}
}

2.SubActivity.java中的代码:

package com.example.administrator.myapplication;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class SubActivity extends Activity {
@Override
public void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.layout.subactivity);
final EditText editText=(EditText)findViewById(R.id.edit1);
Button btnrtn = (Button)findViewById(R.id.b2);

btnrtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String uriString = editText.getText().toString();
Uri data = Uri.parse(uriString);
Intent result = new Intent(null,data);
setResult(RESULT_OK,result);
finish();
}
});
}
}

三.layout目录下代码:

有两个页面:

1.登录界面activity_main.xml中的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
android:id="@+id/b1"
android:layout_width="165dp"
android:layout_height="80dp"
android:layout_marginLeft="80dp"
android:layout_marginTop="100dp"
android:text="登陆"
android:textSize="30dp" />

<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="100dp"
android:text="用户名:"
android:textSize="30dp" />
</LinearLayout>

2.输入用户名界面subActivity.xml中的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="100dp"
android:layout_marginLeft="20dp"
android:text="用户名:"
android:textSize="30dp" />

<EditText
android:id="@+id/edit1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="100dp"></EditText>
</LinearLayout>

<Button
android:id="@+id/b2"
android:layout_width="165dp"
android:layout_height="80dp"
android:layout_marginLeft="80dp"
android:layout_marginTop="20dp"
android:text="返回"
android:textSize="35dp" />
</LinearLayout>

页面效果如下图所示:

         

 

猜你喜欢

转载自www.cnblogs.com/wu-bei-jing-qiu/p/9274910.html