1、掌握获取Activity返回值的方法;了解Intent过滤器的原理与匹配机制;了解Service的原理和用途;掌握进程内服务的管理方法;掌握服务的隐式启动和显式启动方法;二、实验工具Eclipse(MyEclipse)+ ADT + Android2.2 SDK;三、实验题目1.编程实现 功能描述:主界面上有一个“登录”按钮,点击“登录”按钮后打开一个新的Activity;新的Activity上面有输入用户名和密码的控件,在用户关闭这个Activity后,将用户输入的用户名和密码传递到主界面中。 编程要点:主界面的Activity命名为MainActivity;启动新的Activity命名为U
2、serLoginActivity;分别使用显示启动和隐式启动的方式,启动新的Activity;用户名中不能出现“”符号,同时长度不超过12个字符;密码使用密码文本显示方式,即显示为“*”,同时只能为数字; 返回的用户名和密码要以Toast的方式显示出来; MainActivity和UserLoginActivity中各个生命周期的回调函数中要以Log.i方式显示日志信息。2. 编程实现编程建立一个简单的进程内服务,实现比较两个整数大小的功能。服务提供IntCompare(Int, Int)函数,输入两个整数,输出较大的整数。 提供两个EditText,分别输入两个整数;提供一个Botton,启
3、动比较过程;提供一个TextView,显示较大的整数;分别使用启动方式和绑定方式使用Service;分别使用Handle和AsyncTask更新TextView中的内容。四、 实验步骤1. 详细工程结构及部分代码(显式和隐式都在其中):结果:代码:MainActivity.javapublic class MainActivity extends Activity protected int SUBACTIVITY1 = 1;private static String TAG = MainActivity;Button button1,button2;public void onCreate(
4、Bundle savedInstanceState) 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(new View.OnClickListener() public void onClick(View v
5、) Intent intent = new Intent(MainActivity.this,UserLoginActivity.class);Toast.makeText(getApplicationContext(), 显示启动, Toast.LENGTH_SHORT).show();startActivityForResult(intent, SUBACTIVITY1); );button2.setOnClickListener(new View.OnClickListener()Intent intent = new Intent(com.example.test隐式启动protect
6、ed void onActivityResult(int requestCode, int resultCode, Intent data) super.onActivityResult(requestCode, resultCode, data);if (resultCode = RESULT_OK) Uri uriData = data.getData();Toast.makeText(getApplicationContext(), uriData.toString(),Toast.LENGTH_SHORT).show(); else Toast.makeText(getApplicat
7、ionContext(), 用户名和密码为空, Toast.LENGTH_SHORT).show(); Override /可视生命周期开始时被调用,对用户界面进行必要的更改 public void onStart() super.onStart(); Log.i(TAG, (2) onStart() Override /在onStart()后被调用,用于恢复onSaveInstanceState()保存的用户界面信息 public void onRestoreInstanceState(Bundle savedInstanceState) super.onRestoreInstanceSta
8、te(savedInstanceState);(3) onRestoreInstanceState() Override /在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更新的资源 public void onResume() super.onResume();(4) onResume() Override / 在onResume()后被调用,保存界面信息 public void onSaveInstanceState(Bundle savedInstanceState) super.onSaveInstanceState(savedInstanceState);(5) o
9、nSaveInstanceState() Override /在重新进入可视生命周期前被调用,载入界面所需要的更改信息 public void onRestart() super.onRestart();(6) onRestart() Override /在活动生命周期结束时被调用,用来保存持久的数据或释放占用的资源。 public void onPause() super.onPause();(7) onPause() Override /在可视生命周期结束时被调用,一般用来保存持久的数据或释放占用的资源 public void onStop() super.onStop();(8) onS
10、top() Override /在完全生命周期结束时被调用,释放资源,包括线程、数据连接等 public void onDestroy() super.onDestroy();(9) onDestroy()UserLoginActivity,javapublic class UserLoginActivity extends Activity EditText username,password;Button submit,reset;protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method
11、stubsetContentView(R.layout.login); Log.i(TAG, username=(EditText)this.findViewById(R.id.username);password=(EditText)this.findViewById(R.id.password);submit=(Button)this.findViewById(R.id.submit);reset=(Button)this.findViewById(R.id.reset);username.setFocusable(true);username.setOnKeyListener(new OnKeyListener()public boolean onKey(View v, int keyCode, KeyEvent event) / TODO Auto-generated method stubint unicodeChar = event.getUnicodeChar();if(unicodeChar= 64)return true;else return false;submit.setOnClickListener(new View.OnClickListener()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1