通讯录开发学习3

 主要是对主界面进行确定,效果为:

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、运行后效果是

 

未完待续。。。。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值