Android面试题之基础篇

来源:互联网 发布:jy的淘宝店网址是多少 编辑:程序博客网 时间:2024/05/16 05:25

1.Android的基本组件都有什么?

答:视图组件、视图容器组件、布局组件、布局参数。

 

2. 怎么将一个Activity封装成对话框的样子? 怎样将Activity封装成长按Menu菜单的样子?

答:在res/values/建立一个style.xml 文件定义一个style 标签名称为Theme 设置parent=Theme.Dialog 然后再Activity中setTheme(int ID)。

 

3. 请详细说明一下Activity的生命周期。

答:一个Activity有三个状态:
l  运行状态:当它在屏幕前台时(位于当前任务堆栈的顶部),它是激活或运行状态。它就是响应用户操作的Activity
l  暂停状态:当它失去焦点但仍然对用户可见时(如附图1),它处于暂停状态。即在它之上有另外一个Activity。这个Activity也许是透明的,或者没有完全覆盖全屏,所以被暂停的Activity仍对用户可见。暂停的Activity仍然是存活状态(它保留着所有的状态和成员信息并保持和窗口管理器的连接),但系统处于极低内存时仍然可以杀死这个Activity
l  停止状态:完全被另一个Activity覆盖时则处于停止状态。它仍然保留所有的状态和成员信息。然而对用户是不可见的,所以它的窗口将被隐藏,如果其它地方需要内存,则系统经常会杀死这个Activity。 
当Activity从一种状态转变到另一种状态时,会调用以下保护方法来通知这种变化
public void onStart()  {  }  
public void onStop()  {  } 
public void onResume()  {  }  
public void onRestart()  {  }  
public void onPause()  { } 
public void onDestroy()  {  }  
void onCreate(Bundle savedInstanceState) 

这几个方法定义了Activity的完整生命周期

 

4. 如何实现嵌套布局

答:<布局1名称+布局引用地址+布局设置>

        <组件></组件结束>

         <布局101名称+布局引用地址+布局设置>

        </布局101结束>

        …

        </布局1结束>

 

5  AlertDialog中的setPositiveButton和setNegativeButton分别是什么?

  答:setPositiveButton是左边的Button 习惯上是确认键

          setNegativeButton是右边的Button 习惯上是取消键

 

6.数据存储包含哪几种方式

  答:SharedPerferences 、文件存储、SQLite、ContentProvider

 

7.如何获取SharedPreferences中的数据

  答:我们需要明确我们使用SharedPreferences的步骤:

一:定义我们需要存储的内存的字段名称和存储文件名

二:获取存储文件名的一个SharedPreferences对象

三:通过我们建立的对象取得相关键值对数据

四:在Activity程序退出的地方保存数据

 

8.Intent向前一个页面传递参数如何实现

答: 我们需要调用startActivityForResult方法用来启动子Activity,这样当我们返回前一个页面的时候我们就能处理子Activity返回的数据。在前一个Activity中我们重写OnActivityResult(int requestCode,int resultCode,Intent data)方法来处理返回值。在子Activity需要返回前一个页面时我们需要先设置Intent的Bundle对象的内容(即要返回的值)然后调用setResult(int resultCode, Intent data)返回上一个Activity

 

9. 如何在一个Activity中结束另一个Activity?

启动了Activity A,并在Actitvity A中启动了Actitvity B。
那么:怎么在Actitvity B中结束Actitvity A呢?实现在Actitvity B中按“返回”键就直接回到桌面,而不是返回Actitvity A

答:Intent mainIntent = new Intent(A.this,B.class);
A.this.startActivity(mainIntent);
A.this.finish();  // 在A中间加这句,这样在B中返回就直接回到桌面了。下次在Activity B按返回键时Activity A已经不存在实例了

 

10. Android获得屏幕的宽和高

答:int screenWidth;int screenHeight;   

WindowManager windowManager = getWindowManager();

Display display = windowManager.getDefaultDisplay();

screenWidth = display.getWidth();
    screenHeight = display.getHeight();

或者

DisplayMetrics dm;

getWindowManager().getDefaultDisplay().getMetrics(dm);

screenWidth= dm.widthPixels;

screenHeight=  dm.heightPixels;

 

11. 请问android:layout_gravity与android:gravity有什么区别啊?

答:举例子说明吧。比如说button,

android:layout_gravity 表示按钮在界面上的位置。

android:gravity表示button上的字在button上的位置

原创粉丝点击