实验三
Android网络通信
实验目的:
本实验的目的是使学生深入了解利用Intent实现进程间的通信过程。学会利用Intent进行Activity的跳转,以及链接网页信息;学会利用Intent将其他Activity的信息返回到Activity中的方法。体会Activity间通信的过程。
实验要求:
编程实现下述功能:主界面上有一个“登录”按钮和“链接网页”按钮,点击“登录”按钮后打开一个新的Activity;新的Activity上面有输入用户名和密码的控件(如下图所示)点击“链接网页”按钮,新的Activity上面有输入Uri信息的控件,可以链接到相应的网站,在用户关闭这个Activity后,返回到主界面中
程序界面如下图所示:
[实现提示]
1、建立Android工程,其中 工程名称:WebCommunication579
包名称:cn.edu.bistu.dj1001.WebCommunication579 Activity名称:WebCommunication579
2、工程建立完毕后,首先进行界面设计,建立相应的子Layout界面
3、在工程中添加相应的.java文件,处理各个Activity的事件响应
4、在Manifest中添加新建的Activity信息,进行注册。
程序源码:
主界面java文件代码: package cn.deu.bistu.dj1001.WebCommunication579;
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView;
public cla WebCommunication579 extends Activity { private Button btnLogin,btnGoToWeb; private TextView show; private static final int SUBACTIVITY1 = 1; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnLogin=(Button) findViewById(R.id.btnLogin); btnGoToWeb=(Button) findViewById(R.id.btnGoToWeb); show=(TextView) findViewById(R.id.A1show);
btnLogin.setOnClickListener(new OnClickListener(){ public void onClick(View v) { Intent intent = new Intent(WebCommunication592.this, activity1.cla);
startActivityForResult(intent, SUBACTIVITY1);
}}); btnGoToWeb.setOnClickListener(new OnClickListener(){ public void onClick(View v) { Intent intent = new Intent(WebCommunication592.this, activity2.cla); startActivity(intent); }}); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch(requestCode){ case SUBACTIVITY1: if (resultCode == RESULT_OK){Uri uriData = data.getData(); show.setText(uriData.toString()); } break; }};} 界面一java文件代码:
package cn.deu.bistu.dj1001.WebCommunication579;
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;
public cla activity1 extends Activity { private Button btnOK,btnCancel; private EditText edtInput; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity1); edtInput=(EditText) findViewById(R.id.edtA1Input); btnOK=(Button) findViewById(R.id.btnA1OK); btnCancel=(Button) findViewById(R.id.btnA1Cancel); btnOK.setOnClickListener(new OnClickListener(){
public void onClick(View v) { String uriString = edtInput.getText().toString(); Uri data = Uri.parse(uriString); Intent result = new Intent(null, data); setResult(RESULT_OK, result); finish(); }}); btnCancel.setOnClickListener(new OnClickListener(){ public void onClick(View view){ finish(); }});}} 界面二java文件代码:
package cn.deu.bistu.dj1001.WebCommunication579;
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle;
import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;
public cla activity2 extends Activity { private EditText edtInput; private Button btnOK,btnCancel; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity2); edtInput=(EditText) findViewById(R.id.edtA2Input); btnOK=(Button) findViewById(R.id.btnA2OK); btnCancel=(Button) findViewById(R.id.btnA2Cancel); btnOK.setOnClickListener(new OnClickListener(){ public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(edtInput.getText().toString())); startActivity(intent); }}); btnCancel.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
finish();
}});}} 主界面的xml文件代码:
xmlns:android=\"http://schemas.android.com/apk/res/android\" android:orientation=\"Horizontal\" android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\">
android:text=\"登录\"
android:id=\"@+id/btnLogin\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\">
android:text=\"链接网页\"
android:id=\"@+id/btnGoToWeb\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\">
android:text=\"\"
android:id=\"@+id/A1show\" android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\">
界面一的xml文件代码:
android:orientation=\"Horizontal\" android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\"
xmlns:android=\"http://schemas.android.com/apk/res/android\">
android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\">
android:text=\"用户名和密码:\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\">
android:text=\"\"
android:id=\"@+id/edtA1Input\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\">
android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\">
android:text=\"确定\"
android:id=\"@+id/btnA1OK\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\">
android:text=\"取消 \"
android:id=\"@+id/btnA1Cancel\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\">
界面二的xml文件代码:
xmlns:android=\"http://schemas.android.com/apk/res/android\">
android:text=\"\"
android:id=\"@+id/edtA2Input\"
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\">
android:text=\"确定\"
android:id=\"@+id/btnA2OK\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\">
android:text=\"取消\"
android:id=\"@+id/btnA2Cancel\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\">
程序运行结果:
程序包:
主界面:
点击登录按钮后:
点击确定按钮后:
点击链接网页按钮后:
点击确定按钮后:
实验心得体会:
通过本次实验深入了解了Intent实现进程间的通信过程。熟悉了利用Intent将其他Activity的信息返回到Activity中的方法,可以更熟练的使用安卓编程软件。