Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2214190
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类:

2010-10-21 23:13:56

网络工程第三阶段——110.15-10.21

在了解Android架构及界面功能实现之后,我们来到了探索之旅的第三站——给手机添加一些功能。

一.功能的实现及分工

1.关于Activity的应用(这部分内容由李玲完成)

1.1对话框

a)         说明

对话框是一种显示于Activity主界面之上的用户界面元素,它比新建一个Activity的开销要小,在错误提示或者提示消息时,对话框是一个很好的选择。

b)        实现代码如下

.JAVA文件中添加代码如下:

package test.cn;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.os.Bundle;

public class test extends Activity {

    final int DIALOG_WELCOME = 1;

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

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        showDialog(DIALOG_WELCOME);

    }

    @Override

    protected Dialog onCreateDialog(int id){

        switch(id){

        case DIALOG_WELCOME:

           return new AlertDialog.Builder(this)

           .setIcon(android.R.drawable.ic_dialog_info)

           .setTitle("警告")

           .setMessage("非法操作!")

           .setPositiveButton("确定", new OnClickListener(){

               @Override

               public void onClick(DialogInterface a0,int a1){

               }})

           .create();

           default:

               return null;

        }}}

1.2 按钮显示

c)        说明

按钮是应用程序常用的用户交互接口,本实验是通过两个按钮控制不同的文字显示。

d)        界面搭建如下

<Button

    android:text="添加"

    android:id="@+id/add"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content">Button>

<Button

    android:text="清除"

    android:id="@+id/clear"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content">Button>

e)         实现代码

package test.cn;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class test extends Activity {

    Button addBtn;

    Button clearBtn;

    OnClickListener btnClick;

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

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        addBtn = (Button)findViewById(R.id.add);

        clearBtn = (Button)findViewById(R.id.clear);

        btnClick = new OnClickListener(){

            @Override

            public void onClick(View V){

               if(V==addBtn){

                   Bundle bundle = new Bundle();

                   bundle.putString("store", "andorid");

               }else if(V==clearBtn){

                   Bundle bundle = new Bundle();

                   bundle.putString("store", "");

               }else{               

               }}};

}}

 

2Andriod ListView 常用方法(此部分内容由陈卓完成)

2.1示例背景及说明

ListView的用法稍微复杂一点,配置Adpater就有几种方法,如ArrayAdapter,SimpleAdapter等。查了一些网上的相关资料,有很多都是用ListActivity ,然后用Adapter来显示布局。ListView是比较常用的控件,但我觉得创建ListView步骤有点繁琐。程序效果是实现一个ListView,ListView里面有标题,内容和图片,并加入点击和长按响应。

2.2程序代码

本例中首先在xml里面定义一个ListView

Xml代码 

xml version="1.0" encoding="utf-8"?> 

<LinearLayout  

android:id="@+id/LinearLayout01"  

android:layout_width="fill_parent"  

android:layout_height="fill_parent"  

xmlns:android=""> 

<ListView android:layout_width="wrap_content"  

android:layout_height="wrap_content"  

android:id="@+id/ListView01" 

/> 

LinearLayout> 

 

定义ListView每个条目的Layout,用RelativeLayout实现:

 

Xml代码 

xml version="1.0" encoding="utf-8"?> 

<RelativeLayout  

android:id="@+id/RelativeLayout01"  

android:layout_width="fill_parent"  

xmlns:android=""  

android:layout_height="wrap_content"  

android:paddingBottom="4dip"  

android:paddingLeft="12dip" 

android:paddingRight="12dip"> 

<ImageView  

android:paddingTop="12dip" 

android:layout_alignParentRight="true" 

android:layout_width="wrap_content"  

android:layout_height="wrap_content"  

android:id="@+id/ItemImage" 

/>  

<TextView  

android:text="TextView01"  

android:layout_height="wrap_content"  

android:textSize="20dip"  

android:layout_width="fill_parent"  

android:id="@+id/ItemTitle" 

/> 

<TextView  

android:text="TextView02"  

android:layout_height="wrap_content"  

android:layout_width="fill_parent"  

android:layout_below="@+id/ItemTitle"  

android:id="@+id/ItemText" 

/> 

RelativeLayout> 

 

最后在Activity里面调用和加入Listener,具体见注释:

 

Java代码 

import java.util.ArrayList; 

import java.util.HashMap; 

import android.app.Activity; 

import android.os.Bundle; 

import android.view.ContextMenu; 

import android.view.MenuItem; 

import android.view.View; 

import android.view.ContextMenu.ContextMenuInfo; 

import android.view.View.OnCreateContextMenuListener; 

import android.widget.AdapterView; 

import android.widget.ListView; 

import android.widget.SimpleAdapter; 

import android.widget.AdapterView.OnItemClickListener; 

public class TestListView extends Activity { 

@Override 

public void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 

setContentView(R.layout.main);  //绑定Layout里面的ListView 

ListView list = (ListView) findViewById(R.id.ListView01);  //生成动态数组,加入数据 

ArrayList> listItem = new ArrayList>(); 

for(int i=0;i<10;i++) 

{ 

HashMap map = new HashMap(); 

map.put("ItemImage", R.drawable.checked);//图像资源的ID 

map.put("ItemTitle", "Level "+i); 

map.put("ItemText", "Finished in 1 Min 54 Secs, 70 Moves! "); 

listItem.add(map); 

} 

//生成适配器的Item和动态数组对应的元素 

SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源  

R.layout.list_items,//ListItemXML实现 

//动态数组与ImageItem对应的子项         

new String[] {"ItemImage","ItemTitle", "ItemText"},   //ImageItemXML文件里面的一个ImageView,两个TextView ID 

new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText} 

 ); 

//添加并且显示 

list.setAdapter(listItemAdapter); 

//添加点击 

list.setOnItemClickListener(new OnItemClickListener() { 

@Override 

public void onItemClick(AdapterView arg0, View arg1, int arg2, 

long arg3) { 

setTitle("点击第"+arg2+"个项目"); 

} 

}); 

//添加长按点击 

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { 

@Override 

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) { 

menu.setHeaderTitle("长按菜单-ContextMenu");    

menu.add(0, 0, 0, "弹出长按菜单0"); 

menu.add(0, 1, 0, "弹出长按菜单1");    

} 

});  

} 

//长按菜单响应函数 

@Override 

public boolean onContextItemSelected(MenuItem item) { 

setTitle("点击了长按菜单里面的第"+item.getItemId()+"个项目");  

return super.onContextItemSelected(item); 

} 

} 

 

2.3功能的效果图如下:

 

 

 

 

阅读(644) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~