您的位置:首页 > 其它

通讯录开发学习3

2011-12-13 20:02 155 查看
主要是对主界面进行确定,效果为:



1、

其中,上面有个ListView,用于显示联系人头像(姓名和电话),在这个gridview上显示一个查找的EditText。

即Listview,然后一个LinerLayout(里面有个EditText)底下一个gridview,

整个界面由一个相对布局包含。

即 main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<LinearLayout
android:id="@+id/list_ll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<ListView
android:id="@+id/lv_userlist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></ListView>

</LinearLayout>

<GridView
android:id="@+id/gv_button_menu"
android:layout_width="fill_parent"
android:layout_height="65sp"
android:layout_alignParentBottom="true"
android:visibility="gone"
></GridView>

<LinearLayout
android:id="@+id/ll_search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_above="@+id/gv_button_menu"
android:visibility="gone"
>
<EditText
android:id="@+id/et_search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Enter the name or phone"
android:textSize="18sp"
></EditText>

</LinearLayout>

</RelativeLayout>


2、这个gridView我们这里也通过控件来实现,不用系统的,也用个布局文件来使用,在11中,该布局文件是用到的,。(可参见11中的解释) 名为:item_menu.xml

其实就一个ImageView,一个TextView(类似于label)。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="5dip"
>
<ImageView
android:id="@+id/item_image"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
></ImageView>
<TextView
android:id="@+id/item_text"
android:layout_below="@+id/item_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"

></TextView>

</RelativeLayout>


3、

要在test.contact里新建一个主类Activity,名为MainActivity.java

package test.contact;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.widget.GridView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {

GridView gv_button_menu;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_MENU){
//
if(gv_button_menu==null){
loadButtonMenu();
}
if(gv_button_menu.getVisibility()==View.GONE){
gv_button_menu.setVisibility(View.VISIBLE);
} else {
gv_button_menu.setVisibility(View.GONE);
}
}
return super.onKeyDown(keyCode, event);
}

//加载底部的菜单(gridView)
@SuppressWarnings("unchecked")
private void loadButtonMenu(){
gv_button_menu =(GridView) this.findViewById(R.id.gv_button_menu);
gv_button_menu.setBackgroundResource(R.drawable.menu_background);
gv_button_menu.setNumColumns(5);//设置有多少列
gv_button_menu.setGravity(Gravity.CENTER);//设置位置 居中
gv_button_menu.setVerticalSpacing(100);//设置水平间隔
gv_button_menu.setHorizontalSpacing(10);//设置垂直间隔

ArrayList data = new ArrayList();

//是gridview里的图片和底部的字 ,这些是构造data
HashMap map = new HashMap();
map.put("itemImage", R.drawable.menu_new);
map.put("itemText", "增加");
data.add(map);

map = new HashMap();
map.put("itemImage", R.drawable.menu_search);
map.put("itemText", "查找");
data.add(map);

map = new HashMap();
map.put("itemImage", R.drawable.menu_delete);
map.put("itemText", "删除");
data.add(map);

map = new HashMap();
map.put("itemImage", R.drawable.controlbar_showtype_list);
map.put("itemText", "菜单");
data.add(map);

map = new HashMap();
map.put("itemImage", R.drawable.menu_exit);
map.put("itemText", "退出");
data.add(map);

//创建Adapter
SimpleAdapter adapter =
new SimpleAdapter(this,data, R.layout.item_menu,new String[]{"itemImage","itemText"},new int[]{R.id.item_image,R.id.item_text});
//SimpleAdapter的参数有(context,listmapdata,resource,from,to),其中resource是布局,即item_menu.xml
//data中的map都将布局(resources)通过后面对应的两个联系起来

gv_button_menu.setAdapter(adapter);
//gridview只能展示,是个视图,而适配器就是将数据和展现方式联系起来的方式
}

}


4、在AndroidManifest.xml里要设置上述类为启动首选

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="test.contact"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AddNewActivity"
android:label="@string/app_name">
</activity>

<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>


5、运行后效果是



未完待续。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: