南昌航空大学android第二次试验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验2:Android组件和组件通信1.1实验目的了解使用Intent进行组件通信的原理,掌握使用Intent启动Activity的方法;掌握获取Activity返回值的方法;了解Intent过滤器的原理与匹配机制;1.2实验工具Eclipse(MyEclipse)+ADT22+Android2.2SDK(Android4.0.3);1.3实验题目1.编程实现⑴功能描述:主界面上有一个“登录”按钮,点击“登录”按钮后打开一个新的Activity;新的Activity上面有输入用户名和密码的控件,在用户关闭这个Activity后,将用户输入的用户名和密码传递到主界面中。⑵编程要点:①主界面的Activity命名为MainActivity;启动新的Activity命名为UserLoginActivity;/*父传子*/②分别使用显示启动和隐式启动的方式,启动新的Activity;③用户名中不能出现“@”符号,同时长度不超过12个字符;只能为数字;④返回的用户名和密码加入到bundle对象中,要以Toast的方式显示出来;⑤MainActivity和UserLoginActivity中各个生命周期的回调函数中要以Log.i方式显示日志信息。//看课件2.编程实现⑴功能描述:编程建立一个碎片应用。应用程序中有一个MainActivity,它包含两个Fragment,分别为LeftFragment和RightFragment。应用要求显示一个主从式的界面,其中,LeftFragment中包含2个Button,RightFragment包含一个TextView,点击左边按钮,右边显示相应详细内容。⑵编程要点:1.4实验步骤实验1编程要点1MainActivity.javaUserLoginActivity.java编程要点2显示启动button1.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){Intentintent=newIntent(MainActivity.this,UserLoginActivity.class);Toast.makeText(getApplicationContext(),显示启动,Toast.LENGTH_SHORT).show();startActivityForResult(intent,request_Code);}});隐式启动button2.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){Intentintent=newIntent(net.learn2develop.SecondActivity);Toast.makeText(getApplicationContext(),隐式启动,Toast.LENGTH_SHORT).show();startActivityForResult(intent,request_Code);}});编程要点3在EditText中添加两个属性android:numeric=integerandroid:maxLength=12编程要点4用户名和密码加入到bundle对象中publicvoidonClick(Viewview){Intenti=newIntent(android.intent.action.MAIN);EditTexttxt_username=(EditText)findViewById(R.id.txt_username);EditTexttxt_usersecret=(EditText)findViewById(R.id.txt_usersecret);Bundleextras=newBundle();extras.putString(str2,txt_username.getText().toString());extras.putString(age2,txt_usersecret.getText().toString());i.putExtras(extras);setResult(RESULT_OK,i);finish();}Toast的方式显示出来publicvoidonActivityResult(intrequestCode,intresultCode,Intentdata){switch(resultCode){caseRESULT_OK:{Bundleb=data.getExtras();Toast.makeText(this,b.getString(str2),Toast.LENGTH_SHORT).show();Toast.makeText(this,b.getString(age2),Toast.LENGTH_SHORT).show();}break;default:break;}}编程要点5MainActivity和UserLoginActivity中各个生命周期的回调函数中要以Log.i方式显示日志信息。以MainActivity为例publicclassMainActivityextendsActivity{intrequest_Code=1;Buttonbutton1,button2;privatestaticStringTAG=MainActivity;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Log.i(TAG,(1)onCreate());button1=(Button)this.findViewById(R.id.button1);button2=(Button)this.findViewById(R.id.button2);button1.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){Intentintent=newIntent(MainActivity.this,UserLoginActivity.class);Toast.makeText(getApplicationContext(),显示启动,Toast.LENGTH_SHORT).show();startActivityForResult(intent,request_Code);}});button2.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){Intentintent=newIntent(net.learn2develop.SecondActivity);Toast.makeText(getApplicationContext(),隐式启动,Toast.LENGTH_SHORT).show();startActivityForResult(intent,request_Code);}});}publicvoidonActivityResult(intrequestCode,intresultCode,Intentdata){switch(resultCode){//resultCode为回传的标记,我在B中回传的是RESULT_OKcaseRESULT_OK:{Bundleb=data.getExtras();//data为B中回传的Intent//Stringstr=b.getString(str1);//str即为回传的值Toast.makeText(this,b.getString(str2),Toast.LENGTH_SHORT).show();//---getthedatausingthegetInt()method---Toast.makeText(this,b.getString(age2),Toast.LENGTH_SHORT).show();}break;default:break;}}@Override//可视生命周期开始时被调用,对用户界面进行必要的更改publicvoidonStart(){super.onStart();Log.i(TAG,(2)onStart());}@Override//在onStart()后被调用,用于恢复onSaveInstanceState()保存的用户界面信息publicvoidonRestoreInstanceState(BundlesavedInstanceState){super.onRestoreInstanceState(savedInstanceState);Log.i(TAG,(3)onRestoreInstanceState());}@Override//在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更新的资源publicvoidonResume(){super.onResume();Log.i(TAG,(4)onResume());}@Override//在onResume()后被调用,保存界面信息publicvoidonSaveInstanceState(BundlesavedInstanceState){super.onSaveInstanceState(savedInstanceState);Log.i(TAG,(5)onSaveInstanceState());}@Override//在重新进入可视生命周期前被调用,载入界面所需要的更改信息publicvoidonRestart(){super.onRestart();Log.i(TAG,(6)onRestart());}@Override//在活动生命周期结束时被调用,用来保存持久的数据或释放占用的资源。publicvoidonPause(){super.onPause();Log.i(TAG,(7)onPause());}@Override//在可视生命周期结束时被调用,一般用来保存持久的数据或释放占用的资源publicvoidonStop(){super.onStop();Log.i(TAG,(8)onStop());}@Override//在完全生命周期结束时被调用,释放资源,包括线程、数据连接等publicvoidonDestroy(){super.onDestroy();Log.i(TAG,(9)onDestroy());}}在logcat中添加对应的tag,然后运行的时候看logcat实验2功能点1主从碎片应用:在AndroidManifest.xml的android:label=@string/app_name然后app_name来自strings.xml的stringname=app_name主从碎片应用/string功能点2屏幕的宽窄可使一个fragment的android:layout_weight=1。而另外一个fragment的android:layout_weight=2。功能点3左边fragment的xml文件如下TextViewandroid:id=@+id/lblFragment1android:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:text=主碎片android:textColor=#000000android:textSize=25sp/Buttonandroid:id=@+id/btnGetTextandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=姓名android

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功