当前位置:文档之家› android考试复习资料

android考试复习资料

Unit 4. Android 生命周期Android 系统中的进程优先级由高到低前台进程高优先级中优先级低优先级可见进程服务进程后台进程空进程Android 组件组件是可以调用的基本功能模块,Android 应用程序就是由组件组成的Android 系统有四个重要的组件,分别是Activity 、Service 、BroadcaseReceiver 和ContentProviderActivity 是Android 程序的呈现层,显示可视化的用户界面,Android 应用程序可以包含一个或多个Activity ,一般在程序启动后会呈现一个Activity 。

Service 用于没有用户界面,但需要长时间在后台运行的应用 BroadcaseReceiver 是用来接受并响应广播消息的组件ContentProvider 是Android 系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider 访问其他应用程序的私有数据,私有数据可以是存储在文件系统中的文件,也可以是SQLite 中的数据库Activity 表现为四种状态,分别是活动状态、暂停状态、停止状态和非活动状态Activity 事件的回调函数: protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop();protected void onDestroy(); Activity:onCreateonDestroyonStartonStoponResumeonPauseonRestore InstanceStateonSave InstanceStateonRestart活动生命周期可视生命周期全生命周期123456789Android 系统提供了两种调试工具LogCat 和DevTools ,用于定位、分析及修复程序中出现的错误LogCat 程序调试原理1.引入android.util.Log 包2.使用Log.v(),Log.d(),Log.i(),Log.w() 和 Log.e()五个函数在程序中设置“日志点”3.当程序运行到“日志点”时,应用程序的日志信息便被发送到LogCat 中4.判断“日志点”信息与预期的内容是否一致E.g. final static String TAG = "LOGCA T"; Log.v(TAG ,"Verbose");DevTools 是用于调试和测试的工具,包括了一系列用户各种用途的小工具Unit 5. Android 用户界面✓ 常见的系统控件包括TextView 、EditText 、Button 、ImageButton 、Checkbox 、RadioButton 、Spinner 、ListView 和TabHostTextView :显示字符串,EditText 是一个具有编辑功能的TextView 相应的XML 文件:<TextView android:id="@+id/TextView01" //@表示后面的字符串是ID 资源,加号(+)表示需要建立新资源名称,并添加到R.java 文件中android:layout_width="wrap_content" //wrap_content 表示TextView 的宽度只要能够包含所显示的字符串即可,若为fill_content 表示则表示控件宽度将等于父控件的宽度android:layout_height="wrap_content" android:text="TextView01" > </TextView>Test.java:TextView txv=(TextView)findViewByID(R.id.TextView01);txv.setText("User:");ImageButton:将img1拷贝到/res/drawable文件夹下(R.java中自动更新)imageButton.setImageResource(R.drawable.img1);按钮响应点击事件:添加点击事件的监听器imageButton.setOnClickListener(new View.OnClickListener(){public void onClick(View view)点击事件的回调函数{txv.setText("ImageButton按钮");}})每个View仅可以注册一个点击事件的监听器,如果使用setOnClickListener()函数注册第二个点击事件的监听器,之前注册的监听器将被自动注销.多个按钮注册到同一个点击事件的监听器上,代码如下:Button.OnClickListener buttonListener = new Button.OnClickListener(){@Overridepublic void onClick(View v) {switch(v.getId()){case R.id.Button01:textView.setText("Button按钮");return;case R.id.ImageButton01:textView.setText("ImageButton按钮");return;}}};button.setOnClickListener(buttonListener);imageButton.setOnClickListener(buttonListener);CheckBox和RadioButton:怎样定义同组中的RadioButton?XML中:<RadioGroup android:id="@+id/RadioGroup01"android:layout_width="wrap_content"android:layout_height="wrap_content"><RadioButton android:id="@+id/RadioButton01"android:layout_width="wrap_content"android:layout_height="wrap_content“android:text="RadioButton01" ></RadioButton><RadioButton android:id="@+id/RadioButton02"android:layout_width="wrap_content"android:layout_height="wrap_content“android:text="RadioButton02" ></RadioButton></RadioGroup>Test.java中:RadioButton radioButton1 =(RadioButton)findViewById(R.id.RadioButton01); RadioButton.OnClickListener rblistener=new RadioButton.OnClickListener(){public void OnClick(View v){//process;}};radioButton1.setOnClickListener(rblistener);Spinner:(similar to ComboBox)Test.java:Spinner spinner=(Spinner)findViewById(R.id.Spinner01);List<String>list=new ArrayList<String>( );list.add("item1");list.add("item2");ArrayAdapter<String>adapter=new ArrayAdapter <String>(this,yout.simple_spinner_item, list ); //数组适配器能够将界面控件和底层数据绑定在一起adapter.setDropDownViewResource(yout.simple_spinner_dropdown_item); spinner.setAdapter(adapter);ListView:(垂直显示的列表控件)ListView listv=(ListView)findViewById(R.id.ListView01);List<String>list=new ArrayList<String>();List.add("item1");List.add("item2");ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, yout.simple_list_item_1, list ); listv.setAdapter(adapter);AdapterView.OnItemClickListener listvListener=new AdapterView.OnItemClickListener(){ public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { String msg =””;textView.setText(msg);}};}TabHost:实现多个分页之间的快速切换(Similar to TabControl)有几个tabpage就建立几个xmlTest.java:public class TabDemo extends TabActivity { //普通的都是extends Activity// 与以往继承Activity不同,TabActivity支持内嵌多个Activity或Viewpublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TabHost tabHost = getTabHost(); //获得Tab标签页的容器LayoutInflater.from(this).inflate(yout.tab1, tabHost.getTabContentView(),true);//LayoutInflater将tab1.xml文件中的布局转换为Tab标签页可以使用的View对象LayoutInflater.from(this).inflate(yout.tab2,tabHost.getTabContentView(),true);LayoutInflater.from(this).inflate(yout.tab3,tabHost.getTabContentView(),true);tabHost.addTab(tabHost.newTabSpec("TAB1").setIndicator("线性布局").setContent(yout01));//使用addTab()函数在tabHost上添加了第1个标识为"TAB1"的分页tabHost.addTab(tabHost.newTabSpec("TAB2").setIndicator("绝对布局").setContent(yout02));tabHost.addTab(tabHost.newTabSpec("TAB3").setIndicator("相对布局").setContent(yout03));}界面布局:声明Android程序的界面布局有两种方法:使用XML文件描述界面布局在程序运行时动态添加或修改界面布局用户既可以独立使用任何一种声明界面布局的方式,也可以同时使用两种方式使用XML文件声明界面布局的特点:将程序的表现层和控制层分离在后期修改用户界面时,无需更改程序的源代码可视化界面加快设计线性布局LinearLayout:如果垂直排列,则每行仅包含一个界面元素如果水平排列,则每列仅包含一个界面元素框架布局FrameLayout表格布局TableLayout:添加行为TableRow<TableLayout android:id="@+id/TableLayout01"android:layout_width="fill_parent"android:layout_height="fill_parent"xmlns:android="/apk/res/android"><TableRow android:id="@+id/TableRow01"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextView...></TextView><EditText ...></EditText></TableRow><TableRow...><Button...></Button><Button...></Button></TableRow></TableLayout>相对布局(RelativeLayout):e.g.android:layout_below="@id/label"android:layout_alignParentRight="true"android:layout_toLeftOf="@id/cancel"android:layout_alignTop="@id/cancel"//声明与ID为cancel的元素在相同的水平位置绝对布局(AbsoluteLayout)android:layout_x="40dip"android:layout_y="40dip"菜单:Android系统支持三种菜单:选项菜单(Option Menu)子菜单(Submenu)快捷菜单(Context Menu)选项菜单分为图标菜单(Icon Menu)& 扩展菜单(Expanded Menu)。

相关主题