一、填空题
1)TextView不换行
android:singleLine=“true”
2)创建一个MyService的Service
public class MyService extends Service{
// 必须实现的方法
@Override
public IBinder onBind(Intent intent){
return null;
}
}
3)获取Activity中的返回数据
①打开Activity——startActivityForResult()
②设置返回数据——setResult()
③得到返回值——重写onActivityResult()
4)关于Intent对象
①激活Intent对象常用——Activity、Service和BroadcastReceiver。
②Service——在后台长时间运行操作且不提供用户界面的组件
5)ADT插件的四个文件夹
①drawable-xhdpi——超高清分辨率图片
②drawable-hdpi——高分辨率图片
③drawable-mdpi——中分辨率图片
④drawable-ldpi——低分辨率图片
6)SQLiteDataBase
①insert()插入数据
②update()更新数据
③query()查询数据
④delete()删除数据
7)Activity退出说明
Back键或者finish()方法,退出当activity,实际调用了onDestroy()方式
8)如何获取user
Intent intent=getIntent();
Bundle bundle=intent.getExtras();
String user =bundle.getString("user")
9)文本框与编辑框
①android:autoLink——超链接
②android:inputType——密码域
10)获取WebView,且添加指定URL
WebView webView=(WebView)findViewById(R.id.webView1);
webView.loadUrl("http://127.0.0.1:8080/bbs/");
二、简答题
1)SurfaceView类的作用及常用的场合:
说明:
surface类是一种特殊的视图,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在独立的线程中进行绘制,不会占用主线程资源。所以它更适合性能比较高的场合。
总结:
①surface类是一种特殊的视图,独立于主窗口
②SurfaceView的UI独立的线程,不占主线程
③适合于性能比较高的场合
2)LayoutInflater类的主要作用及工作原理:
该类可以从上下文环境获取一个局部填充器,利用它把xml布局文件转化为View对象。然后再将此View对象放入主界面的LinearLayout中。LayoutInflater类用inflate()方法加载xml布局文件。
3)Fragment对象的工作原理,以及对Activity之间的关系
①将应用程序拆解为多个部分,使各个部分灵活组合,以使用不同分辨率的手机和平板设备。
②将Activity代码和界面“切割”,分成多个碎片,每一小块都是迷你的Activity。
③Fragment与Activity的关系:Activity是由多个Fragment组合而成。
4)Android 的四大基本组件与其作用
四大组件:Activity、BroadcastReceiver、ContentProvider和Service
Activity:android的最基本板块,提供可视化的用户界面,一个android项目有一个或多个activity。
BroadcastReceiver:广播接收器,专注于接收广播通知信息,且做出对应处理的组件。
ContentProvider:应用程序之间共享数据的一种接口机制,一共高级的数据共享方法,共享的数据可以在不知道数据来源、路径的情况下进行操作。
Service:没有可视化的用户界面,一段时间内在后台运行的程序。
5)Padding与Margins
padding:内边距,参考固定于当前位置,向上下左右进行移动。
margins:外部距,参考于其他的对象,向上下左右进行移动。
6)Looper、Handler、Message,以及MessageQueue的工作原理
Looper对象用来为一个线程开启一个消息循环,用来操作MessageQueue。默认情况下Android中新创建的线程是没有开启消息循环的。但是主线程除外,系统会自动为主线程创建Looper对象,开启消息循环。
消息处理类(Handler)允许发送和处理Message或Rannable对象到其所在线程的MessageQueue中。
消息类(Message)被存放在MessageQueue中,一个MessageQueue中可以包含多个Message对象。每个Message对象可以通过Message.obtain()方法或者Handler.obtainMessage()方法获得。
MessageQueue(消息队列),用于存放Message(消息),在MessageQueue中,存放的消息按照FIFO(先进先出)原则执行。
7)R.java和AndroidManifest.xml文件的作用:
R.java文件用来定义Android程序中所有资源的索引,在Java源文件中编写代码时,可以直接通过该索引访问各种资源。每个Android应用程序必须包含一个AndroidManifest.xml文件,它位于根目录中。它是整个Android应用的全局描述文件。在该文件内,需要标明应用的名称、使用图标、Activity和Service等信息,否则程序不能正常启动。
8)Android提供的线性布局、表格布局方式的特点:
线性布局(LinearLayout) :控件按照从上至下或从左至右的顺序排列成一行或一列. 另外Android的线性布局中的组件不会换行,当组件一个挨着一个排列到窗体的边缘后,剩下的组件将不会被显示出来。表格布局(TableLayout) :用创建行; 或直接向中添加UI组件,该组件独占一行。 往行中每添加一个组件,表格会自动增加一列。
9)什么是Intent,其作用为:
Intent(意图)是一个对象,它是一个被动的数据结构保存一个将要执行操作的抽象描述,或在广播的情况下,通常是某事已经发生并正在执行,开发人员通常使用该对象激活Activity、Service和BroadcastReceiver。Intent用于相同或者不同应用程序组件间的后期运行时绑定。
10)Android提供的相对布局、帧布局这两种常用界面布局方式的特点 :
在相对布局中,放入其中的组件是相对于兄弟组件,或者父容器的位置进行排列的,其特点是布局比较灵活。帧布局(FrameLayout) :每加入一个组件,都会创建一个空白的区域,称之为帧。 这些帧会根据gravity属性自动对齐; 默认从屏幕左上角(0,0)坐标点开始布局,多个组件重叠,后面的覆盖前面的。
三、编程题
1)Android网络应用程序
实现功能:使用HttpClient和HttpGet对象完成一个Android网络应用程序,连接地址为:http://www.weather.com.cn/data/list3/city.xml, 后通过HttpResponse对象将所获得的返回内容打印在日志界面中。
HttpClient client=new DefaultHttpClient();
HttpGet get=new HttpGet("http://www.weather.com.cn/data/list3/city.xml ");
try{
HttpResponse response=client.execute(get);
if(response.getStatusLine().getStatusCode()==200){
HttpEntity entity=response.getEntity();
String content=EntityUtils.toString(entity,"UTF-8");
Log.i("rss", content);
}catch(Exception e){
e.printStackTrace();
}
2)Android连接数据库
实现功能:使用Android数据库对象db(假设已存在,不需编写创建该对象的代码)向数据库的tb_student表中添加一条记录,具体值如下:
sno:12;sname:张三;age:23;address:福州
ContentValues values=new ContentValues();
values.put("sno ", 12);
values.put("sname ", "张三");
values.put("age ", 23);
values.put("address ", "福州");
db.insert("tb_student",null ,values);
3)按钮功能绑定
实现功能:
(1)、通过findViewById方法获得界面上的id为submit的Button按钮对象
(2)、为submit按钮对象添加单击事件监听器,使得点击该按钮时,创建一个显示的intent对象,通过该intent对象实现:切换当前界面MainActivity到第二个界面DetailActivity中去
Button submit= (Button) findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =
new Intent (MainActivity.this, DetailActivity.class);
startActivity(intent);
}
});
4)EditText功能使用
实现功能:
(1)、通过findViewById方法获得界面上的id为txtLogin的EditText输入框和btnLogin按钮对象
(2)、为btnLogin按钮对象添加单击事件监听器,实现功能:获取用户在txtLogin输入框中输入的内容,判断其值是否为“123”,若是则将该内容打印在日志中,若不是则在日志中打印“输入错误!”
EditText txtlogin = (EditText) findViewById(R.id.txtLogin);
Button btnlogin = (Button) findViewById(R.id.btnLogin); btnlogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String pwd = txtlogin.getText().toString();
if(pwd.equals("123"))
Log.i("MainActivity",pwd);
else
Log.i("MainActivity","输入错误!");
}
});