当前位置:文档之家› Android教程(Menu,ActionBar,ListView)

Android教程(Menu,ActionBar,ListView)

Android教程(Menu,ActionBar,ListView)
Android教程(Menu,ActionBar,ListView)

1Menu

1.1Menu 的种类

1.OptionMenu(选项菜单)

Android手机上有个Menu按键,当Menu按下时,每个Activity 都可以选择处理这一

请求,一般情况下,选项菜单最多显示2排每排3个菜单项,这些菜单项有文字有图标,也被称作Icon Menus,如里多于6项,从第六项开始会被隐藏,在第六项会出瑞一个

More里,点击More才出现第六项以及以后的菜单项,这些菜单也被称作Expanded

Menus.

以上陈述的是在3.0版之前选项菜单的显示形式,3.0版后由于加入了新的属性ActionBar,添加选项菜单后被显示在ActionBar中,手机上物理按键也渐渐的被去掉。

选项菜单还可设置显示在屏幕下方。

2.ContextMenu(上下文菜单)

Android的上下文菜单,当一个视图注册到一个上下文菜单时,执行一个在该对象上的

“长按”动作,将出现一个提供相关功能的浮动菜单。上下文菜单可被注册到任何视图

中。但不支持图标或快捷键。

当用户长按下某个VIEW的时候,显示比如EDITTEXT

3.SubMenu(子菜单)

SubMenu(子菜单)是在选项菜单的基础上增加子菜单.一个Menu对象可以拥有0或多个

SubMenu通过调用Menu.addSubMenu方法将SubMenu添加到当前Menu中。在SubMenu添

加MenuItem的方式和在Menu中添加MenuItem方式一样,因为SubMenu是Menu的子类,但是SubMenu里不能再添加SubMenu。

1.2Menu的实例解析

1.2.1OptionMenu(选项菜单)

1.创件一个OptionMenu的工程 ,主Activity为OptionMenuActivity:

publicclass OptionMenuActivity extends Activity {

/** Called when the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/1f13689236.html,yout.main);

}

//点击Menu时,系统调用当前Activity的onCreateOptionsMenu方法,并传一个实现了一个Menu接口的Menu

对象

@Override

publicboolean onCreateOptionsMenu(Menu menu) {

// TODO Auto-generated method stub

/*

* add()方法的四个参数,依次是:

* 1.组别,如果不分组的话就写Menu.NONE

* 2.Id,Android根据这个ID来索引,相当于控件的物理ID

* 3.顺序,那个菜单现在在前面由这个参数的大小决定

* 4.文本,菜单的显示文本

*/

menu.add(Menu.NONE,1,5,"删除").setIcon(android.R.drawable.ic_menu_delete);

menu.add(Menu.NONE,2,2,"保存").setIcon(android.R.drawable.ic_menu_save);

menu.add(Menu.NONE,3,6,"帮助").setIcon(android.R.drawable.ic_menu_help);

menu.add(Menu.NONE,4,1,"添加").setIcon(android.R.drawable.ic_menu_add);

menu.add(Menu.NONE,5,4,"详细").setIcon(android.R.drawable.ic_menu_info_details);

menu.add(Menu.NONE,6,3,"发送").setIcon(android.R.drawable.ic_menu_send);

//return true才会起作用

returntrue;

}

//菜单项被选择事件

@Override

publicboolean onOptionsItemSelected(MenuItem item) {

// TODO Auto-generated method stub

switch(item.getItemId()){

case 1:

Toast.makeText(this, "删除菜单被点击了", Toast.LENGTH_LONG).show();

break;

case 2:

Toast.makeText(this, "保存菜单被点击了", Toast.LENGTH_LONG).show();

break;

case 3:

Toast.makeText(this, "帮助菜单被点击了", Toast.LENGTH_LONG).show();

break;

case 4:

Toast.makeText(this, "添加菜单被点击了", Toast.LENGTH_LONG).show();

break;

case 5:

Toast.makeText(this, "详细菜单被点击了", Toast.LENGTH_LONG).show();

break;

case 6:

Toast.makeText(this, "发送菜单被点击了", Toast.LENGTH_LONG).show();

break;

}

returntrue;

}

//选项菜单被关闭事件,菜单被关闭有三种情况:MENU键再次被点击;BACK键被点击;用户选择了某一个菜单项

@Override

publicvoid onOptionsMenuClosed(Menu menu) {

// TODO Auto-generated method stub

super.onOptionsMenuClosed(menu);

Toast.makeText(this, "选项菜单关闭了", Toast.LENGTH_LONG).show();

}

//菜单被显示之前的事件

@Override

publicboolean onPrepareOptionsMenu(Menu menu) {

// TODO Auto-generated method stub

Toast.makeText(this, "选项菜单显示之前onPrepareOptionsMenu方法会被调用", Toast.LENGTH_LONG).show();

returntrue;

}

}

Andriod3.0以前的显示效果: Andriod3.0以后的显示效果:

1.2.2ContextMenu(上下文菜单)

1.创建一个ContextMenu工程,主Activity实现如下:

publicclass ContextMenuActivity extends Activity {

/** Called when the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/1f13689236.html,yout.main);

//为VIEW注册上下文菜单

findViewById(R.id.button1).setOnCreateContextMenuListener(this);

}

//上下文菜单被选择事件

@Override

publicboolean onContextItemSelected(MenuItem item) {

// TODO Auto-generated method stub

switch(item.getItemId())

{

case 1:

Toast.makeText(this, "编辑", Toast.LENGTH_LONG).show();

break;

case 2:

Toast.makeText(this, "删除", Toast.LENGTH_LONG).show();

break;

}

returnsuper.onContextItemSelected(item);

}

//点击注册的VIEW时,系统调用当前Activity的onCreateContextMenu方法,并传一个实现了一个Menu接口的Menu对象

@Override

publicvoid onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfomenuInfo) {

// TODO Auto-generated method stub

super.onCreateContextMenu(menu, v, menuInfo);

menu.add(0,1,0,"Edit");

menu.add(0,2,0,"Delete");

}

上下文菜单经常会与LISTVIEW结合使用

实现效果:

1.2.3SubMenu(子菜单)

Android提供了基于Group id管理多个MenuItem的方法。

removeGroup(int group);移除所有属于Group的MenuItem.

setGroupEnable(int group ,boolean enable):批量开启或关闭整个组的MenuItem。setGroupVisible(int group ,visible):批量显示或隐藏整个组的MenuItem。

setGroupCheckable(int group ,booleancheckable,boolean exclusive):设置菜单是否可选中。最后一个exclusive是指是单选还是多选,当exclusive是true时,系统将菜单前面添加单选框,是false时则变成是checkbox多选框。

创建一个工程SubMenu,主Activity实现如下

publicclass SubMenuActivity extends Activity {

/** Called when the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/1f13689236.html,yout.main);

}

//点击Menu时,系统调用当前Activity的onCreateOptionsMenu方法,并传一个实现了一个Menu接

口的Menu对象

@Override

publicboolean onCreateOptionsMenu(Menu menu) {

// TODO Auto-generated method stub

/*

* add()方法的四个参数,依次是:

* 1.组别,如果不分组的话就写Menu.NONE

* 2.Id,Android根据这个ID来索引,相当于控件的物理ID

* 3.顺序,那个菜单现在在前面由这个参数的大小决定

* 4.文本,菜单的显示文本

*/

SubMenusubMenu = menu.addSubMenu(Menu.FIRST, 1, Menu.NONE, "显示设置");

subMenu.add(Menu.FIRST, 2, Menu.FIRST+2, "网络设置");

subMenu.add(Menu.FIRST, 3, Menu.FIRST+3, "高级设置");

subMenu.add(Menu.FIRST, 4, Menu.FIRST+4, "安全设置");

//return true才会起作用

returntrue;

}

//菜单项被选择事件

@Override

publicboolean onOptionsItemSelected(MenuItem item) {

// TODO Auto-generated method stub

switch(item.getItemId()){

case 1:

Toast.makeText(this, "显示设置被点击", Toast.LENGTH_LONG).show();

break;

case 2:

Toast.makeText(this, "子菜单网络设置菜单被点击了",

Toast.LENGTH_LONG).show();

break;

case 3:

Toast.makeText(this, "子菜单高级设置菜单被点击了",

Toast.LENGTH_LONG).show();

break;

case 4:

Toast.makeText(this, "子菜单安全设置菜单被点击了",

Toast.LENGTH_LONG).show();

break;

}

returntrue;

}

//选项菜单被关闭事件,菜单被关闭有三种情况:MENU键再次被点击;BACK键被点击;用户选择了某一个菜单项

@Override

publicvoid onOptionsMenuClosed(Menu menu) {

// TODO Auto-generated method stub

super.onOptionsMenuClosed(menu);

Toast.makeText(this, "选项菜单关闭了", Toast.LENGTH_LONG).show();

}

//菜单被显示之前的事件

@Override

publicboolean onPrepareOptionsMenu(Menu menu) {

// TODO Auto-generated method stub

Toast.makeText(this, "选项菜单显示之前onPrepareOptionsMenu方法会被调用", Toast.LENGTH_LONG).show();

returntrue;

}

}

实现图如下:

2Action Bar

2.1Action Bar 简介

ActionBar(活动栏)是Android3.0以上才有的新性,其替代了显示在屏幕顶端的标题栏。主要负责显示菜单,Wigdet,导航等功能,主要包括:

显示选项菜单中的菜单项到活动样;

添加可交互的视图到活动栏作为活动视图;

提供标签导航,方便不同的Fragment之间的切换;

提供下拉导航功能。

活动栏的三种显示模式:

NAVIGATION_MODE_STANDARD

NAVIGATION_MODE_LIST

NAVIGATION_MODE_TABS

2.2Action Bar具体实现

由于ActionBar是Android3.0版之后的功能,调用时SDK版本不可低于Android3.0

AndroidManifest.xml文件中minSdkVersion大于等于11:

2.2.1ActionBar的显示、隐藏

调用Actionbar显示可用代码实现,或直接在AndroidManifest.xml中配置属性。

代码实现:

ActionBaractionbar = getActionBar();

※调用时要在setContentView(https://www.doczj.com/doc/1f13689236.html,yout.*)之后;

actionBar.show();//显示活动栏

// actionBar.hide();//隐藏活动栏

或是配置文件中:

< activity android:theme="@android:style/Theme.NoTitleBar" >

2.2.2ActionBar的构成

1.Main action bar(用于放置程序图标,标题或MENUITEM,也可加入自定义LAYOUT)

2.Top bar(提供标签导航)

3.Bottom bar(底部栏用于放置MENUITEM)

※屏幕切换成横屏后,1 2 3 部分全部显示在上方,集结成一条活动栏;

※通常情况下菜单项是显示在1的右边,优先向右填充;

※如果要使菜单项显在底部栏的话,配置文件中需要设置:

android:uiOptions="splitActionBarWhenNarrow"

※1部分可以不显示程序图标及标题,可以加入自定义的LAYOUT

※以上三部分的ActionBar可以根据需要调用

2.2.3ActionBar的三种显示模式

通过Actionbar.setNavigationMode()来设置显示的模式;

1.Actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

此为标签导航显示,在设置为此模式之前,要先加入所需要的菜单项目

actionbar.addTab(actionbar.newTab().setText("Tab ONE").setTabListener(this));

※类需要实现接口(implements TabListener)

2.Actionbar.setNavigationMode(ActionBar. NAVIGATION_MODE_LIST);

活动栏设置为下拉导航后,还需做以下工作

a.创建数据,即菜单信息(可创建在String.xml)

list2-1

list2-2

b.设置下拉菜单

Actionbar.setNavigationMode(ActionBar. NAVIGATION_MODE_LIST);

c.实现Actionbar. OnNavigationListener接口

SpinnerAdaptermSpinnerAdapter =

ArrayAdapter.createFromResource(this,R.array.list_menu,

https://www.doczj.com/doc/1f13689236.html,yout.simple_spinner_dropdown_item);

actionbar.setListNavigationCallbacks(mSpinnerAdapter, new DropDownListenser());

public class DropDownListenser implements OnNavigationListener {

@Override

publicbooleanonNavigationItemSelected(intitemPosition, long itemId) { // TODO Auto-generated method stub

//实现选择下拉菜单动作

return true;

}

}

3.Actionbar.setNavigationMode(ActionBar. NAVIGATION_MODE_STANDARD);

设置标准模式。当设为标准模式时,Actionbar只显示MainActionBar.

调用setDisplayOptions()可根据用户需求显示主活动栏上的元素(程序图标,标准等)2.3ActionBar实例解析

2.3.1ActionBar标签导航

1.建一个工程叫Sample,主Activity叫SampleActivity.java:

2.SampleActivity.java:

publicclass SampleActivity extends Activity {

/** Called when the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/1f13689236.html,yout.main);

//获取活动栏

finalActionBaractionbar;

actionbar = getActionBar();

//不显示主菜单栏

//隐藏主活动栏

actionbar.setDisplayOptions(0,ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_TITLE); //添加标签并设置监听

actionbar.addTab(actionbar.newTab().setText("Tab

One").setTabListener(new TabListener(new TabContentFragment("Tab one"))));

actionbar.addTab(actionbar.newTab().setText("Tab

Two").setTabListener(new TabListener(new TabContentFragment("Tab two"))));

actionbar.addTab(actionbar.newTab().setText("Tab

Three").setTabListener(new TabListener(new TabContentFragment("Tab three"))));

actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

}

//重写接口

privateclass TabListener implements ActionBar.TabListener {

private TabContentFragment mFragment;

public TabListener(TabContentFragment fragment) {

mFragment = fragment;

}

publicvoid onTabSelected(Tab tab, FragmentTransactionft) {

//fragment_content是定义在MAIN.XML里面的一个控件

ft.add(R.id.fragment_content, mFragment, mFragment.getText());

}

publicvoid onTabUnselected(Tab tab, FragmentTransactionft) {

ft.remove(mFragment);

}

publicvoid onTabReselected(Tab tab, FragmentTransactionft) {

Toast.makeText(SampleActivity.this, "Reselected!", Toast.LENGTH_SHORT).show();

}

}

privateclass TabContentFragment extends Fragment {

private String mText;

public TabContentFragment(String text) {

mText = text;

}

public String getText() {

return mText;

}

@Override

public View onCreateView(LayoutInflaterinflater, ViewGroup container,

Bundle savedInstanceState) {

//创建一个LAYOUT frame_content.xml显示内容

View fragView = inflater.inflate(https://www.doczj.com/doc/1f13689236.html,yout.frame_content, container, false); TextView text = (TextView) fragView.findViewById(R.id.text);

text.setText(mText);

return fragView;

}

}

}

Frame_content.xml:

android:id="@+id/text"

android:layout_width="match_parent"

android:layout_height="match_parent">

注意点:

1.点击TAB后替换显示的区域要创建FRAMLAYOUT类型的对象(如上例main.xml中的

fragment_content)

2.在FRAMLAYOUT里面显示的另一个LAYOUT(frame_content.xml)如果根据不同的标签显示不同内

容时,可以在onCreateView中根据不同的条件返回不同的VIEW

2.3.2ActionBar下拉菜单

主体实现如下SampleActivity.java:

publicclass SampleActivity extends Activity {

/** Called when the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/1f13689236.html,yout.main);

final ActionBaractionbar;

actionbar = getActionBar();

//设置下拉菜单和监听器

SpinnerAdaptermSpinnerAdapter = ArrayAdapter.createFromResource(this,R.array.app_name, https://www.doczj.com/doc/1f13689236.html,yout.simple_spinner_dropdown_item);

actionbar.setListNavigationCallbacks(mSpinnerAdapter, new DropDownListenser()); actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

}

//实现下拉菜单点击事件接口

publicclass DropDownListenser implements OnNavigationListener {

//创建存放菜单项的数组

String[] listNames=getResources().getStringArray(R.array.app_name);

//当选择下拉菜单项的时候,将ACTIVITY中的内容置换为对应的FRAGMENT

@Override

publicboolean onNavigationItemSelected(int itemPosition, long itemId) {

// TODO Auto-generated method stub

FragmentManager manager = getFragmentManager();

FragmentTransaction transaction = manager.beginTransaction();

//将ACTIVITY中的内容替换成对应选择的FRAGMENT

transaction.replace(R.id.fragment_content,

new TabContentFragment(listNames[itemPosition]));

https://www.doczj.com/doc/1f13689236.html,mit();

returntrue;

}

}

//创建新的FRAGMENT

privateclass TabContentFragment extends Fragment {

private String mText;

public TabContentFragment(String text) {

mText = text;

}

public String getText() {

return mText;

}

//创建一个LAYOUT frame_content.xml显示内容

@Override

public View onCreateView(LayoutInflaterinflater, ViewGroup container,

Bundle savedInstanceState) {

View fragView = inflater.inflate(https://www.doczj.com/doc/1f13689236.html,yout.frame_content, container, false);

TextView text = (TextView) fragView.findViewById(R.id.text);

text.setText(mText);

return fragView;

}

}

}

String.xml:

list2-1

list2-2

注意点:

1.下拉菜单中,菜单项是存放在数组中,再读取显示

2.ArrayAdapter.createFromResource(this,R.array.app_name,

https://www.doczj.com/doc/1f13689236.html,yout.simple_spinner_dropdown_item);

App_name是自己创建的数组名称

2.3.3ActionBar自定义菜单

主体实现如下:

publicclass SampleActivity extends Activity {

/** Called when the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.doczj.com/doc/1f13689236.html,yout.main);

final ActionBaractionbar;

actionbar = getActionBar();

//读取自定义的LAYOUT

View mCustomView = getLayoutInflater().inflate(

https://www.doczj.com/doc/1f13689236.html,yout.customzie_bar, null);

//将自定义的LAYOUT放入ACTIONBAR中

actionbar.setCustomView(mCustomView,

new https://www.doczj.com/doc/1f13689236.html,youtParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

` //

int flags = ActionBar.DISPLAY_SHOW_CUSTOM;

int change = actionbar.getDisplayOptions() ^ flags;

actionbar.setDisplayOptions(change, flags);

//不显示主菜单栏

actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);

}

@Override

publicboolean onCreateOptionsMenu(Menu menu) {

// TODO Auto-generated method stub

menu.add(Menu.NONE,1,Menu.NONE,"MENU1").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

returnsuper.onCreateOptionsMenu(menu);

}

}

3ListView

3.1ListView简介

ListView是Android开发中比较常用的组件,其主要以列表的形式展示具体内容,并且

够根据数据长度自适应显示。ListView显示需要三个要素:

1.ListView用来展示的列表的View

2.适配器用来把数据映射到ListView上的中介

3.数据具体的将被映身的字符串,图片,或者基本组件。

根据列表的适配器,列表分为三种:

1.ArrayAdapter(最为简单,只能展示一行字)

2.SimleAdapter (有最好的扩充性,可以自定义出各种效果)

3.SimpleCursorAdapter(SimleAdapter对数据库的简单结合)

3.2ListView的实现

3.2.1ArrayAdapter

创建工程ListView,主Activity代码如下:

publicclass ListViewActivity extends Activity {

/** Called when the activity is first created. */

private ListView listView;

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

listView = new ListView(this);

//listView设置一个适配器

//https://www.doczj.com/doc/1f13689236.html,yout.simple_list_item_1系统自带的LISTVIEW的排序。可直接引

//其中规定了列表的高度,字体行间距等信息

listView.setAdapter(new

ArrayAdapter(this,https://www.doczj.com/doc/1f13689236.html,yout.simple_list_item_1,getData())); setContentView(listView);

//点击事件

listView.setOnItemClickListener(new OnItemClickListener(){

@Override

publicvoid onItemClick(AdapterView arg0, View arg1, int arg2,

long arg3) {

// TODO Auto-generated method stub

//点击事件的响应

switch(arg2){

//列表第一行

case 0:

Toast.makeText(ListViewActivity.this, "测试数据1", Toast.LENGTH_LONG).show();

break;

//列表第二行

case 1:

Toast.makeText(ListViewActivity.this, "测试数据2", Toast.LENGTH_LONG).show();

break;

//列表第三行

case 2:

Toast.makeText(ListViewActivity.this, "测试数据3", Toast.LENGTH_LONG).show();

break;

}

}

});

}

private ListgetData(){

List data = new ArrayList();

data.add("测试数据1");

data.add("测试数据2");

data.add("测试数据3");

return data;

}

}

注意:ArrayAdapter(Context context,inttextViewResoourceId,List objects)用来装配数据实现如下:

3.2.2SimpleAdapter

SimpleAdapter的扩展性最好,可以定义各种各样的布局出来.可以放上图片,还可以放按钮,复选框等等.使用SimpleAdapter的数据用一般都是HashMap构成的List,List的每一节对应ListView的每一行。HashMap的每个键值数据映射到布局文件中对应的ID的组件上。布局文件为自定义作成。

1.自定义布局文件vlist.xml

1.

2.

3.android:layout_width="fill_parent"

4.android:layout_height="wrap_content"

5.android:orientation="horizontal">

6.

7.

8.android:id="@+id/img"

9.android:layout_width="55dp"

10.android:layout_height="55dp"

11.android:layout_margin="5dp">

12.

13.

14.

15.android:id="@+id/linearLayout1"

16.android:layout_width="wrap_content"

17.android:layout_height="wrap_content"

18.android:layout_weight="1"

19.android:orientation="vertical">

20.

21.

22.android:id="@+id/title"

23.android:layout_width="fill_parent"

24.android:layout_height="0dp"

25.android:layout_weight="1"

26.android:textAppearance="?android:attr/textAppearanceMedium">

27.

28.

29.

30.android:id="@+id/info"

31.android:layout_width="fill_parent"

32.android:layout_height="wrap_content"

33.android:layout_weight="1"

34.android:textAppearance="?android:attr/textAppearanceSmall">

35.

36.

37.

38.android:id="@+id/linearLayout2"

39.android:layout_width="wrap_content"

40.android:layout_height="fill_parent"

41.android:layout_gravity="center_vertical"

42.android:layout_marginRight="10dp">

43.

44.

45.android:id="@+id/view_btn"

46.android:layout_width="wrap_content"

47.android:layout_height="wrap_content"

48.android:text="Button"/>

49.

50.

51.

52.

2.创建工程ListView,主Activity代码如下:

publicclass ListViewActivity extends ListActivity {

/** Called when the activity is first created. */

private List>mData;

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//取出数据

mData = getData();

//设定适配器,MyAdapter为自定义适配器

MyAdapter adapter = new MyAdapter(this);

setListAdapter(adapter);

}

//将需要的数据一组组的存入LIST,返回LIST,一组数据为列表一行的显示信息private List>getData(){

List>list = new ArrayList>();

Map map = new HashMap();

map.put("title", "G1");

map.put("info", "google 1");

map.put("img",com.my.listview.R.drawable.t);

list.add(map);

map = new HashMap();

map.put("title", "G2");

map.put("info", "google 2");

map.put("img",com.my.listview.R.drawable.t);

list.add(map);

map = new HashMap();

map.put("title", "G3");

map.put("info", "google 3");

map.put("img",com.my.listview.R.drawable.t);

list.add(map);

return list;

}

//点击LISTVIEW的响应事件

@Override

protectedvoid onListItemClick(ListView l, View v, int position, long id) {

// TODO Auto-generated method stub

super.onListItemClick(l, v, position, id);

Log.v("MYListview-CLICK",(String)mData.get(position).get("title"));

}

//创建弹出窗口

publicvoid showInfo() {

new AlertDialog.Builder(this).setTitle("我的LISTview")

.setMessage("介绍。。。").setPositiveButton("确定",

new DialogInterface.OnClickListener() {

@Override

publicvoid onClick(DialogInterface dialog,

int which) {

// TODO Auto-generated method stub

}

}).show();

}

//创建静态类,缓存LISTVIEW显示的信息,可提高效率

publicfinalclass ViewHolder{

public ImageView img;

public TextView title;

Android期末考试复习试卷(仅供参考)

一、选择题(20分,每小题2分) 1、下列不是手机操作系统的是( D )。 A Android B Window Mobile C Apple IPhone IOS D Windows Vista 2、下列选项哪个不是 Activity 启动的方法(B ) A startActivity B goToActivity C startActivityForResult D startActivityFromChild 3、下列哪个不是 Activity 的生命周期方法之一(B ) A onCreate B startActivity C onStart D onResume 4、下列哪个可做 Android 数据存储(A ) A SQlite B M ySql C Oracle D DB2 5、下列哪个可做EditText编辑框的提示信息( D ) A android:inputType B android:text C android:digits D android:hint 6、Math.ceil(99.1) 的结果是(B ) A 99 B 100 C 99.1 D 99.0 7、android 中下列属于Intent的作用的是(C) A实现应用程序间的数据共享 B是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D处理一个应用程序整体性的工作 8、关于 res/raw 目录说确的是A A这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B这里的文件是原封不动的存储到设备上会转换为二进制的格式 C这里的文件最终以二进制的格式存储到指定的包中 D这里的文件最终不会以二进制的格式存储到指定的包中 9、Math.round(11.5)等于多少(). Math.round(-11.5)等于多少( C) A 11 ,-11 B 11 ,-12 C 12 ,-11 D 12 ,-12 10、我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是(A ) A onDestroy() B onClear() C onFinish() D onStop() 二、填空题(10 分,共10 题,每空1 分) 1、为了使 android 适应不同分辨率机型,布局时字体单位应用( sp ),像素单位应用( sp )和(dip ) 2、定义 LinearLayout 水平方向布局时至少设置的三个属性: ( android:orientation), (android:layout width)和(android:layout height)

Android studio 开发安装教程

Android studio 安装教程 目录 Android studio 安装教程 (1) 1.JDK 的安装和Java 环境变量的设置 (2) 1.1 JDK 下载地址: (2) 1.2 安装JDK (2) 1.3、环境变量设置 (4) 2.Android studio 的安装 (7) 2.1 开始安装打开android studio 安装文件 (7) 2.2 缓存文件夹配置 (9) 2.3 打开Android studio (11)

1.JDK 的安装和Java 环境变量的设置 1.1 JDK 下载地址: https://www.doczj.com/doc/1f13689236.html,/technetwork/java/javase/downloads/index.html JDK(Java Development Kit) 是整个Java 的核心,包括一系列Java 开发的东西,安装完毕需要配置一下环境变量。 1.2 安装JDK 安装JDK 本机是64 位,所以,选择jdk-7u21-windows-x64.exe 下载,下载完成后,进行安装

1.3、环境变量设置 1.3.1 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: 1.3. 2. JAVA_HOME JDK 的安装路径,这个环境变量本身不存在,需要创建,创建完则可以利用%JAVA_HOME% 作为统一引用路径,其值为:j d k在你电脑上的安装路径。 1.3.4 PATH PATH 属性已存在,可直接编辑。作用是用于配置路径,简化命令的输入,其值 为:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

Android期末测试题(附带答案)

一、选择题 1、下列哪项不是Android四大组件( C ) A.Seivice B. Activity C. Handler D. Content Provider 2、Android是如何组织Activity的( B ) A.以堆的方式组织Activity B. 以栈的方式组织Activity C. 以树形方式组织Activity D. 以链式方式组织Activity 3、关于线程说法不正确的是( B ) A. 在 android 中,我们可以在主线程中,创建一个新的线程 B. 在创建的新线程中,它可以操作 UI 组件 C. 新线程可以和 Handler 共同使用 D. 创建的 Handler 对象,它隶属于创建它的线程 4、下列关于内存回收的说明,哪个是正确的(B ) A.程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 5、设置xml布局文件中的字体大小一般用什么单位( c ) A.dp B. px C. sp D. pt 6、关于service生命周期的onCreate()和onStart()说法正确的是( D ) A.当第一次启动的时候先后调用onCreate()和onStart()方法 B.当第一次启动的时候只会调用onCreate()方法 C.如果service已经启动,将先后调用onCreate()和onStart()方法 D.如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法 7、Android项目工程下面的assets目录,以下说法正确的是( A ) A.这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B.主要放置多媒体等数据文件 C.主要放置图片文件 D.放置字符串,颜色,数组等常量数据 8、在android中使用SQLiteOpenHelper这个辅助类,生成一个可操作的数据库,调用的方法是( A )A.getReadableDatabase() B.getDatabase() C.getEnbleDatabase() D.createDateBase() 9、Activity从可见状态变为半透明遮盖状态时,生命周期中哪个方法被调用( B )

一看就懂的Android APP开发入门教程

工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择U SE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Andro id的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

android试卷A及答案

Android应用试卷A 一、选择题(10分) 1. 下列不是手机操作系统的是?(D) A.Android B. Window Mobile C. Apple IPhone IOS D. windows vista 2. 下列选项哪个不是Activity启动的方法?(B ) A. startActivity B. goToActivity C. startActivityForResult D. startActivityFromChild 3. 下列哪个不是Activity的生命周期方法之一?(B ) A. onCreate B startActivity C. onStart D. onResume 4. 下列哪个可做Android数据存储?( A ) A. SQlite B. MySql C. Oracle D. DB2 5. 下列哪个可做EditText编辑框的提示信息?( D ) A. android:inputType B. android:text C. android:digits D. android:hint 二、真空题(2分) 1. 为了使android适应不同分辨率机型,布局时字体单位应用sp ,像素单位应用sp 和dip 。 2. 定义LinearLayout水平方向布局时至少设置的三个属性: android:orientation ,android:layout_width 和android:layout_height 。 3. 设置 ImageView控件为灰色的方法是:android:background=”#040” 。 4. layout布局文件的命名不能出现字母大写。 5. 设置EditText只能输入”1234567890.+-*/%()”属性:android:digits 。 6. 设置TextView字体的属性是:android:textSize 。 三、简答题(30分) 1. Android项目中的入口Activity怎么写?如何注册一般的Activity? (1) Android项目中的入口Activity:

(完整版)Android应用开发期末考试题

试题 一、选择题 1 android虚拟设备的缩写是(AVD) 2 Android SDK目前支持的操作系统(DOS) 3 Android开发工具插件(ADT)没有提供的开发功能(自动更新) 4Android SDK提供一些开发工具可以把应用软件打包成Android格式文件(APK) 5 Android当中基本的所有的UI都是由(view)或者其子类实现的 6以下不是Android中调试项目的正确步骤(测试用例) 7下列不是Activity的生命周期方法之一的是(OnResume) 8以下可以做EditText编辑框的提示信息是(adroid:hint) 9以下不是Activity启动的方法是(gotoActivity) 10以下不是手机操作系统的是(windows vista) 二、填空题 1 Android平台由操作系统,中间件,用户界面和应用软件组成的。 2 Android平台提供了2D,3D的图形支持,数据库支持SQLite,并且集成了浏览器 3目前已知的可以用来搭建Android开发环境的系统有windows,Linux,Mac 等4开发中推荐使用的IDE开发组合为IDE,eclipse,ADI来开发 5 Android SDK主要以java语言为基础 6创建工程时需要填写的信息名称有工程名,包的名字,Activity的名字还有应用的名字

7 Android.jar是一个标准的压缩包,其内容包含的是编译后的class,包含了全部的API 三、简答题 1 Android SDK中API的包结构的划分?至少五个 android.util,android.os,android.content,android.view,android.graphics,android.text 2 Android软件框架结构自上而下可分为哪些层? 应用程序(Application)、应用程序框架(Application Framework)、各种库(Libraries)和Android运行环境(RunTime)、操作系统层(OS) 3 Android应用程序的4大组件是什么? Activity、Broadcast Intent Receiver、Service、Content Provider 4 Android应用工程文件结构有哪些? 源文件(包含Activity),R.java文件,Android Library,assets目录res目录,drawble目录,layout目录,values目录,AndroidManifest.xml 5 Android开发应用程序最有可能使用到的应用框架部分是哪些? 一组View(UI)组件,Content Providers,Resource Manger,Notification Manger,Activiy Manger 6 Android底层库包含哪些? 系统C库,媒体库,Surface Manager,LibWebCore,SGL 四、编程 1实现点击一个按钮,结束当前Activity并将需要返回的数据放置并关闭当前窗体请编写核心代码 Bundle bundle = new Bundle ( ); Bundle.putString(“store”,”数据来自Activity1”) ;

Android基础阶段 测试题

一、选择题(每题2分,共20分) 1.给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项)a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 2.在Java中,下列()语句不能通过编译。 (选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 3.给定如下java代码,编译运行之后,将会输出()。 public class Test{ public staticvoid main(String args[]){ int a=5; System.out.println(a%2==1) ?(a+1) /2:a/2) ; } } a)1 b)2 c)2.5 d)3 4. 有关线程的哪些叙述是对的?( ) A、当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。 B、使用Start()方法可以使一个线程成为可运行的,但它不一定立即开始运行。 C、一个线程可能因为不同的原因停止并进入就绪状态。 D、一旦一个线程被创建,它立即开始运行。 5.下列属于Intent的作用的是( ) A、实现应用程序间的数据共享

B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 6.关于下列程序段的输出结果,说法正确的是:() public class MyClass{ static int i; public static void main(String argv[]){ System.out.println(i); } } A、有错误,变量i没有初始化。 B、null C、1 D、0 7.下列属于SAX解析xml文件的优点的是() A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会 消失 8.下列哪些语句关于内存回收的说明是正确的? ( ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 9.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的是() A、 B、

Android开发入门教程

第一篇:安装SDK 这里主要介绍如何安装Android的SDK开发包和配置开发环境。如果你还没有下载SDK,点击下面的链接开始。 Download the Android SDK 系统和软件配置要求 要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下: 支持的开发环境 Eclipse Eclipse 3.2,3.3(Europa) Android开发工具插件(可选) 其他的开发环境或者IDE JDK5.0或者JDK6.0(仅有JRE是不够的) 安装SDK 下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tools加入到你的路径中 1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/t ools的完整路径加入其中。如果没有找到设定PATH变量的行,你可以自己添加一行: export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径> 2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,你可以创建一个.bash_profile文件。 3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。 通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。需要注意到是,当你升级了SDK后,如果安装路径有变动的话,不要忘记了更新你的PATH变量的设置,将其指向变动后的路径。 安装Eclipse插件(ADT) 如果你选择Eclipse作为Android的开发环境,可以安装一个专门为Android定制的插件:Android Deve lopment Tools(ADT),ADT插件集成

Android练习题及答案

练习题 一、选择题 1. 下面哪个属于体系结构中的应用程序?( ) (A) (B) (C)浏览器(D) 2. 应用程序需要打包成( )文件格式在手机上安装运行。 (A) (B) (C) (D) 3. 在的生命周期中,当被某个覆盖掉一部分后,会处于哪种状态?( ) (A) 暂停(B) 活动(C) 停止(D) 销毁 4. 中下列属于的作用的是( )。 (A) 实现应用程序间的数据共享() (B) 是一段长的生命周期,没有用户界面的程序,可以保持在后台运行,而不会因为切换页面而消失() (C) 可以实现界面间的切换,可以包含动作和动作数据,是连接4大组件的纽带 (D) 处理一个应用程序整体性的工作 5. 项目启动时最先加载的是文件,如果有多个,以下哪个属性决定了该最先被加载?( )。 (A) (B)(没有) (C) (D) 6. 如果需要捕捉某个组件的事件,需要为该组件创建( ) (A)属性(B)监听器(C)方法(D)工程 7.关于描述正确的是( )。 (A)该布局为绝对布局,可以自定义控件的的位置 (B)该布局为切换帧布局,可实现标签切换的功能 (C)该布局为相对布局,其中控件的位置都是相对位置

(D)该布局为表格布局,需要配合一起使用 8.关于的说法不正确的是 ( )。 (A)它实现不同进程间通信的一种机制(B)它采用队列的方式来存储 (C)既是消息的发送者也是消息的处理者(D) 它实现不同线程间通信的一种机制 9. 下列哪种不是的存储方式?( ) (A) (B) (C) (D) 10. 下列关于的描述,不正确的是 ( )。 (A)是系统的后台服务组件,适用于开发无界面、长时间运行的应用功能 (B)比的优先级高,不会轻易被系统终止 (C)有两种不同的使用方式,一种是以启动方式使用,另一种是以绑定方式使用 (D)每个服务都继承自基类 二、填空题 1. 目前,常见的智能手机操作系统有、和等。 2第一次被创建的时候调用的方法是()。 3.为了使系统适应不同分辨率机型,布局时使用的字体和像素单位分别是 和。 4支持的4大重要组件,分别是、、和。 5. 4.0中提供了5种布局管理器:、、、和。 6类不能直接使用关键字来创建类的对象实例,而是首先创建其内部 类类的对象,再调用这个内部类的()方法来显示对话框。

Android移动应用试题(带答案)

<>试题 一.选择题(2’X12) 1.下面哪一个不属于Android体系结构中的应用程序层 A.电话簿 B.日历 C.SQLite D.SMS程序 2.下面哪种说法不正确 A.Android应用的gen目录下的R.java被删除后还能自动生成; B.res目录是一个特殊目录,包含了应用程序的全部资源,命名规则可以支持数字(0-9) 下横线(_),大小写字母(a-z , A-Z); C.AndroidManifest.xml文件是每个Android项目必须有的,是项目应用的全局描述。其 中指定程序的包名(pack age=”…”)+指定android应用的某个组件的名字(android:name=”…”)组成了该组件类的完整路径 D.assets和res目录都能存放资源文件,但是与res不同的是assets支持任意深度的子目 录,在它里面的文件不会在R.java里生成任何资源ID 3.在一个相对布局中怎样使一个控件居中 A.android:gravity="center" B.android:layout_gravity="center" C.android:layout_centerInParent="true" D.android:scaleType="center" 4.下面是一段生成对话框的代码,哪一行有错误? Builder builder = new Builder(getApplicationContext()); 1 builder.setTitle("提示").setMessage("请选择"); 2 builder.setPositiveButton("重置", new OnClickListener() 3 { 4 public void onClick(DialogInterface dialog, int which) 5 { 6 Log.i("log", "重置被按了!"); 7 } 8 }); 9 builder.setNegativeButton("取消", null); 10 builder.setNeutralButton("确定", new OnClickListener() 11 { 12 public void onClick(DialogInterface dialog, int which) 13 { 14 Toast.makeText(getApplicationContext(), "确定被按了!", 15 Toast.LENGTH_SHORT).show(); 16 } 17

Android移动应用开发基础教程(微课版)-教学大纲

《Android移动应用开发基础教程(微课版)》教学大纲 学时:62 代码: 适用专业: 制定: 审核: 批准: 一、课程的地位、性质和任务 Android移动应用开发基础是普通高等学校计算机科学与技术专业的一门重要的专业基础课。通过本课程的学习,使学生能够在已有的计算机基础知识基础上,对Android移动应用开发有一个系统的、全面的了解、为掌握移动应用开发打下良好的基础;在系统理解和掌握Android移动应用开发基本原理的基础上,了解和掌握移动应用开发的基本原理和方法,具有设计和开发Android移动应用APP的基本能力。 Android移动应用开发是一门实践性非常强的学科,它要求学生在理解和掌握Android移动应用开发语言语法的基础上,充分利用实验课程,在计算机上动手完成程序的编写和调试。 二、课程教学基本要求 1.课程教学以Android移动应用开发方法为主,在教学过程中让学生掌握Android移动应用开发的基本原理和方法。 2.要求在教学过程中合理安排理论课时和实验课时,让学生有充分的使用在计算机上练习理论课程中学到的Android移动应用开发技巧和方法。 三、课程的内容 第1章 Android开发起步 让学生了解Android平台特点、体系架构和版本,掌握如何搭建Android开发环境,熟悉如何创建Android项目和Android编程的日志工具 第2章 Android核心组件:活动 让学生了解Android核心组件之一的活动是什么、活动生命周期,掌握活动基本操作、在活动中使用Intent、在活动之间传递数据、活动的启动模式。 第3章 UI设计 让学生熟练掌握线性布局、相对布局、通用UI组件、消息通知和菜单。 第4章广播机制 让学生了解广播机制,并熟练掌握如何使用广播接收器。 第5章数据存储 让学生熟练掌握Android文件存储、共享存储和SQLite数据库存储。 第6章多媒体 让学生熟练掌握播放多媒体文件、记录声音、使用摄像头和相册。 第7章网络和数据解析

Android应用软件开发高级工程师考试试题

CEAC国家信息化中心计算机教育认证 (Android应用软件开发高级工程师) 考试试卷(综合) 姓名__________身份证号_______________成绩__________ 单选题 1:以下哪个不是Adapter的子类接口?( 1 分)( ) A:ListAdatper B:SpinnerAdapter C:WrapperListAdapter D:SimpleAdatper 2:定义字符串:String str=”abcdefg”;则str.indexOf(‘d’)的结果是()。(1 分) A:‘d’B:true C: 3 D:4 3:下面关于包的说明正确的是()。( 1 分) A:包把相关的类组织在一个目录下,便于引用 B:只有public 类才能放到包中 C:不同源文件中的类不能放到同一个包中 D:包的申明必须放到程序的第一行 4:一维数组arr,如何获取其数组元素数量()。( 1 分) A:arr.size B:arr.size-1 C:arr.length-1 D:arr.length 5: Android应用程序的四大组件是指()。( 2 分) A:Activity、Dialog、Service和Intent B:Activity、Service、BroadCast Receiver和Content Provider C:Activity、Service、BroadCast Receiver和Intent D:Activity、Dialog、Service和Content Provider

6下面哪个方法不属于InputStream类?( 2 分)( ) A:int read(byte[]) B:void flush() C:int read() D:void close() 7:给定下列代码: public class Person{ static int arr[]=new int[10]; public static void main(String a[]){ System.out.println(arr[1]); } } 下列说法正确的有()。( 2 分) A:编译时程序将发生错误 B:编译时程序正确但是运行时出错 C:输出为0 D:输出为null 8:访问Student类中的number成员之值哪种方式正确?()class Student{ private static int number=1; public static int getNumber(){ return number; } } ( 2 分) A:Student.number; B:new student().number; C:Student.getNumber(); D:new student().getnumber(); 9:Activity中onCreate(Bundle savedInstanceState)方法中的参数为saveInstanceState,关于saveInstanceState的错误的描述是()。( 2 分) A:saveInstanceState参数采用key-value的形式存储数据 B:saveInstanceState保存的是Activity的实例状态

Android官方开发教程中文版(二)

Android官方开发教程中文版 添加操作栏 添加操作栏 操作栏是你能为你的Activity实现的重要的设计元素之一,它提供了几种用户界面特性,使你的应用能够保持和其它应用的一致性,以便用户很快熟悉它。主要功能包括:1.用专门的空间为你的应用指定标识并且指示出用户在应用中的位置。 2.以可预测的方式访问重要的操作(如搜索) 3.支持导航和视图切换(使用选项卡或下拉列表) 本课程提供了关于操作栏基础知识的快速指南,要获得关于操作栏各种特性的更多信息,请参考“操作栏”指南。 设置操作栏 操作栏的最基本形式是为Activity显示标题以及在标题左边显示应用图标。即使是这种简单的形式,操作栏也有利于通知用户当前的位置,以及为你的应用保持一致性。 操作栏包括一个应用图标和Activity标题 设置一个基本的操作栏需要你的应用使用一个Activity主题并启用操作栏。如何获取这样一个主题取决于你的应用支持的最低Android版本。因此这节课根据你的应用支持的Android最低版本分为两个部分。 仅支持Android3.0及以上版本 从Android3.0开始(API级别11),操作栏被包含在所有使用Theme.Holo(或它的派生类)主题的Activity中,当targetSdkVersion或minSdkVersion的值大于等于11时,Theme.Holo 是默认主题。 因此,要在Activity中添加操作栏,只需简单地把这两个属性之一的值设为11或更高就可以了,如:

Android APP开发入门教程

Android APP开发入门教程 这篇文章主要介绍了Android APP开发入门教程,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教程,需要的朋友可以参考下。 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android 程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android 开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择USE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK 包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Android的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK 目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

android开发试卷

一、选择题(本大题共20题,每题2分,共40,不写多选为单选)。 注意:请把答案填入答题纸的相应位置上,否则不得分! 1.在activity_main.xml中,定义一个组件时,有两个属性必须写( )(多选) A、A android:layout_width B、B android:layout_height C、C android:id="@+id/start" D、D android:text 2.微信app安装一般会申请如下权限( ) (多选) A、读取地位位置信息 B、读取通讯录 C、读取短信 D、发送通知 3.android常见三种数据存储与访问的方式()(多选) A、文件 B、数据库 C、sharedpreference D、内容提供者 4.下列哪些api的操作需要声明权限()(多选) A、播放声音 B、写SD卡(读sd卡状态) C、发短信 D、打电话 5.LBS定位技术的描述的是( )(多选) A、大部分联网app需要申请LBS权限 B、地图导航中需要用到该技术 C、GPS无信号的情况下LBS功能不能用。 D、Wifi无线即使没有连接也能改善LBS定位的精度 6.以下那个一般用来用来显示图片widget是( ) A、ImageView B、TextView C、Button D、Spinner 7.Android的activity中,一般代码在练习的时候写在了()函数中 a)onCreate b)onStart c)onStop d)onDestory 8.Android开发中常用的数据库是: a)SQL Server b)MySQL c)SQLite d)Oracle 9.以下调整宽度和高度的属性,哪个不是Android系统提供的? a)Match_parent b)Wrap_content c)Fill_content d)Fill_parent 10.从其他应用中读取共享的数据库数据,需要用到的是query方法,返回Cursor数据,那么这 个方法是哪个对象的方法? a)ContentProvider b)ContentResolver c)SQLiteOpenHelper d)SQLiteDataBase 11.常见可用的推送技术提供者包括(多选) a)阿里云推送 b)百度云推送 c)极光推送 d)腾讯推送 12.Android项目中assets目录的作用是什么? a)放置字符串,颜色等信息 b)放置图片资源 c)放置较大的文件资源 d)放置界面布局配置 13.以下哪个对象是自定义组件中用来绘制内容的对象 a)Bitmap b)Canvas c)BufferedImage d)Drawable 14.以下属性中哪个属性是LinearLayout拥有但RelativeLayout没有的属性 a)android:layout_width b)android:layout_height c)android:layout_weight d)android:background 15.启动activity对一些资源以及状态的读取,可以在生命周期的哪个函数中进行( ) A、onPause() B、onCreate() C、onResume() D、onStart() 16.Activity生命周期的最初执行 A、onCreate B、onPause 17.onPause什么时候调用( ) A.当界面启动时 B.当onCreate方法被执行之后 C.当界面被隐藏时 D.当界面重新显示时 18.关于适配器的说法正确的有( ) A.它主要是用来存储数据 B.它主要用来把数据绑定到组件上

最新最全android开发视频教程

最新最全android开发视频教程 这是本站收集整理的android方面的开发视频教程,仅供大家下载,学习; ★视频目录★ 第一部分:百度云网盘存储 第01套尚学堂_高明鑫_全网最新、最牛、最全andriod视频教程 第02套Android之手机安全卫士开发教程+源码 第03套Android之自定义View(李科霈)开发教程+源码 第04套开发Android多媒体软件系列视频 第05套Android阿福多媒体播放器开发教程+源码 第06套Android系统的手机防盗软件的实现 第07套Android的软件管理器的开发教程 第08套Android地图搜索应用——美食天下 第09套大话优酷、酷六类视频网站Android客户端软件开发 第10套88个经典Android应用程序打包下载 第11套3G手机Android应用新浪微博项目开发教程 第12套UML和红孩子客户端独立项目开发讲解+源码 第13套安卓之微信项目开发实战教程+源码 第14套安卓之好友互动项目开发实战教程+源码 第15套Android之新浪微盾(殷凯)的开发教程+源码+资料 第16套传智播客Android之病毒与反病毒开发教程+源码 第17套Android社交分享平台——口袋微博 第18套北风网Android之新浪微博项目开发教程(沈大海)+资料+源码第19套北风网Android应用实战淘宝网手机客户端全程实录+源码 第20套Android系统的手机防盗软件的实现+源码 第21套基于Android的软件管理器开发教学视频 第22套开发Android移动互联网应用视频

第23套疯狂Java李韩飞老师Android项目新浪微博实战教程+PPT 第24套Android之豆瓣项目开发教程+源码 第25套Mars老师Android开发教学视频 第26套Android开发入门视频教程高清版 第27套《Android开发视频教程》全四季 第28套【张泽华】android视频教程 第29套Android开发视频教程 第30套Android开发基础视频教程 第31套手机安全卫士项目开发视频 第32套Android开发视频教程第三季 第33套Android开发视频教学视频教程第二季mars老师制作 第34套3G手机Android应用开发 第35套Android开发从零开始 第36套新浪微博Android OAuth2.0授权视频教程 第37套Sundy‘s Android高级应用开发课程共享版 第38套基于Android的通讯录开发教学视频 第39套腾讯微博Android客户端开发 第40套Android2.3源码下载 第41套8天快速掌握Android视频 第42套Google Android开发入门与实战视频 第43套老罗Android视频教程详解篇 第44套轻松几步学Android开发视频教程 第45套Android应用开发之高级应用 第46套Android学习资料大全 第47套Android深入浅出之基础篇 第48套android高级应用课程共享 第49套Android深入浅出 第50套老罗Android开发视频教程-安卓巴士 第51套黑马程序员_黎活明_Android核心基础视频教程 第52套新浪微博Android开发视频教程

Android应用开发入门教程(经典版)

Android应用开发入门教程(经典版) Linux公社(https://www.doczj.com/doc/1f13689236.html,)于2006年9月25日注册并开通网站,Linux现在已经成为一种广受关注和支持的一种操作系统,IDC是互联网数据中心,LinuxIDC 就是关于Linux的数据中心。 https://www.doczj.com/doc/1f13689236.html,提供包括Ubuntu,Fedora,SUSE技术,以及最新IT资讯等Linux专业类网站。

目录 第一篇Android系统结构和SDK使用 (5) 第1章 Android的系统介绍 (5) 1.1 系统介绍 (5) 1.2 软件结构和使用的工具 (7) 第2章 Android SDK的开发环境 (10) 2.1 Android SDK的结构 (10) 2.2 Android SDK环境安装 (11) 2.2.1. 安装JDK基本Java环境。 (11) 2.2.2. 安装Eclipse (12) 2.2.3. 获得Android SDK (12) 2.2.4(1). 在Eclipse 3.4(Ganymede)中安装ADT (14) 2.2.4(2). 在Eclipse 3.5(Galileo)中安装ADT (17) 2.2.5. 在Eclipse中配置Android SDK (20) 2.3 Android中运行仿真器环境 (21) 2.3.1. 建立Android虚拟设备 (21) 2.3.2. 运行虚拟设备 (22) 2.3.3. 使用Android中的工具 (23) 2.3.4. 使用logcat (24) 2.3.5. 使用仿真器控制 (25) 2.3.6. 命令行工具adb、mksdcard等 (26) 2.3.7. 使用设备控制 (28) 2.4 Android中建立工程 (29) 2.4.1. 建立工程 (29) 2.4.2. 查看和编辑各个文件 (31) 2.4.3. 运行工程 (33) 第二篇 Android应用程序的概述和框架 (36) 第3章 Android应用层程序的开发方式 (36) 3.1 应用程序开发的结构 (36) 3.2 API参考文档的使用 (36) 第4章Android应用程序示例 (40) 4.1 HelloActivity程序的运行 (40) 4.2 HelloActivity的源文件结构 (41) 4.2.1.Android.mk文件 (41) 4.2.2.AndroidManifest.xml文件 (42) 4.2.3.源代码文件 (42) 4.2.4.布局文件 (43) 4.2.5.其他资源文件 (43) 4.3 HelloActivity的编译结构 (43) 4.4 SkeletonApp的程序的运行 (44) 4.5 SkeletonApp的源文件结构 (44) 4.6 SkeletonApp的编译结构 (46) 第5章 Android应用程序的内容 (47) 5.1 Android应用程序的概念性描述 (47) 5.1.1.应用程序的组成部分 (47) 5.1.2.应用程序的生命周期 (48) 5.2 应用程序包含的各个文件 (50) 5.3 使用am工具启动Android应用程序 (51) 2

相关主题
文本预览
相关文档 最新文档