Android实训五

实训5 组件通信

一、【实训目的】

(1) Activity的作用及应用

(2) Intent组件通信

(3) Bundle类在组件通信中的作用

  • 【实训步骤和要求】

1、使用布局文件实现以下三个界面

 

2、页面的功能:

1)、点击“页面1”的发送数据按钮,可以将文本框“需要发送的数据”的内容发送到页面二“接收到第一页信息”中文本框中,并跳转到页面2;

2)点击“页面2”中的“下一页”可以跳转到“页面3”;

3)点击“页面3”中的“关闭并返回值给上一页”按钮,可以将文本框中的值发送到第二页;

FirstActivity源代码:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.*;

public class FirstActivity extends Activity{
	private EditText shuju;
	private Button btnnext1;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.first);
		shuju = (EditText)findViewById(R.id.number1);
		btnnext1=(Button)findViewById(R.id.btnnext1);
		btnnext1.setOnClickListener(new View.OnClickListener(){
			@Override
			public void onClick(View arg0){
				// TODO Auto-generated method stub
				Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
				Bundle bundle=new Bundle();
				String value=shuju.getText().toString();
				bundle.putString("name1",value);  //把name作为键,Tom作为值放进bundle中
				intent.putExtras(bundle);
                startActivityForResult(intent,0);	
			}
		});
		
	}
	
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

SecondActivity源代码:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.*;

public class SecondActivity extends Activity{
	private EditText number2,number3;
	private Button btnnext2;
	private Button btnprevious2;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.second);
		number2= (EditText) findViewById(R.id.number2);
		number3= (EditText) findViewById(R.id.number3);
		btnnext2=(Button)findViewById(R.id.btnnext2);
		btnprevious2=(Button)findViewById(R.id.btnprevious2);
		Intent intent=getIntent();
		Bundle bundle1=intent.getExtras();
		Bundle bundle2=intent.getExtras();
		String name1=bundle1.getString("name1");
		String name2=bundle2.getString("name2");
		number2.setText(name1);
		number3.setText(name2);
		btnnext2.setOnClickListener(new View.OnClickListener(){
			@Override
			public void onClick(View arg0){
				// TODO Auto-generated method stub
				Intent intent=new Intent(SecondActivity.this,ThirdActivity.class);
				startActivityForResult(intent,0);
			}
		});
		
		btnprevious2.setOnClickListener(new View.OnClickListener(){
			@Override
			public void onClick(View arg0){
				// TODO Auto-generated method stub
				Intent intent=new Intent(SecondActivity.this,FirstActivity.class);
				startActivityForResult(intent,0);
			}
		});
	}
	
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	
}

ThirdActivity源代码:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.*;

public class ThirdActivity extends Activity{
	private EditText shuju1;
	private Button btnprevious3;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.third);
		shuju1 = (EditText)findViewById(R.id.number4);
		btnprevious3=(Button)findViewById(R.id.btnprevious3);
		btnprevious3.setOnClickListener(new View.OnClickListener(){
			@Override
			public void onClick(View arg0){
				// TODO Auto-generated method stub
				Intent intent=new Intent(ThirdActivity.this,SecondActivity.class);
				Bundle bundle=new Bundle();
				String value1=shuju1.getText().toString();
				bundle.putString("name2",value1);  //把name作为键,Tom作为值放进bundle中
				intent.putExtras(bundle);
                startActivityForResult(intent,0);
			}
		});
	}
	
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	
}

first.XML源代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="20dp" >
  
    <Button
        android:id="@+id/btnnext1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="发送数据" />
    
     <EditText
         android:id="@+id/number1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center_horizontal"
         android:inputType="text"
         android:text="需要发送的数据" />
    
</LinearLayout>

second.XML源代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="20dp" >

    <TableLayout
		android:orientation="vertical"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content">
		<TableRow>
    
    	<TextView
       		android:id="@+id/txt2"
        	android:layout_width="wrap_content"
        	android:layout_height="wrap_content"
        	android:text="接收到第一页信息:" />
    
    	<EditText
         	android:id="@+id/number2"
         	android:layout_width="wrap_content"
         	android:layout_height="wrap_content"/>
    	</TableRow>
	</TableLayout>
	
    <TableLayout
		android:orientation="vertical"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content">
		<TableRow>
    
    	<TextView
       		android:id="@+id/txt3"
        	android:layout_width="wrap_content"
        	android:layout_height="wrap_content"
        	android:text="接收到第三页信息:" />
    
    	<EditText
         	android:id="@+id/number3"
         	android:layout_width="wrap_content"
         	android:layout_height="wrap_content"/>
    	</TableRow>
	</TableLayout>
    	
	<TableLayout
		android:orientation="vertical"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_gravity="center_horizontal">
		<TableRow>
        	<Button
            	android:id="@+id/btnprevious2"
            	android:layout_width="wrap_content"
            	android:layout_height="wrap_content"
            	android:layout_gravity="center_horizontal"
            	android:text="上一页" />
        	
        	<Button
            	android:id="@+id/btnnext2"
            	android:layout_width="wrap_content"
            	android:layout_height="wrap_content"
            	android:layout_gravity="center_horizontal"
            	android:text="下一页" />
     	</TableRow>
	 </TableLayout>
    	
</LinearLayout>

third源代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="20dp" >

    <EditText
         android:id="@+id/number4"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="center_horizontal"
         android:inputType="text"
         android:ems="10" >
        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/btnprevious3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="关闭并返回值给上一页" />

</LinearLayout>

Strings.xml源代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name1">第一页</string>
    <string name="app_name2">第二页</string>
    <string name="app_name3">第三页</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>

AndroidManifest.xml源代码:

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.qq1.FirstActivity"
            android:label="@string/app_name1" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.qq1.SecondActivity"
            android:label="@string/app_name2" >
        </activity>   
         <activity
            android:name="com.example.qq1.ThirdActivity"
            android:label="@string/app_name3" >
        </activity>    
    </application>

</manifest>

运行结果截图:

 

 

 

附注:该专栏是博主上学时的实训项目,可供访客练习与参考。代码质量不是很好,但能实现,仅供参考!    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值