胡神

导航

(android) menu自定义(二)

menu.xml文件

<?xml version="1.0" encoding="utf-8"?>
 
<RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
    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"/>
   
    <TextView
    android:id="@+id/item_text"
    android:layout_below="@+id/item_image"
      android:layout_centerHorizontal="true"
  android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
</RelativeLayout>

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"
    >

 
    <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:visibility="gone"
    android:layout_above="@+id/gv_button_menu"
    >
     <EditText
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:hint="搜索"
     android:textSize="18sp"
     android:id="@+id/et_rearch"></EditText>
    </LinearLayout>
</RelativeLayout>

.java文件

package gxk.menuActivity;

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

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class menu2 extends Activity{

 GridView gridView;
 LinearLayout linearLayout;
 @Override
 protected void onCreate(Bundle savedInstanceState) {

  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main2);
 }
 
 
 
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  // TODO Auto-generated method stub
  if(keyCode==event.KEYCODE_MENU)
  {
   if(gridView==null)
   {
    loadMenu();
   }
   
   if(gridView.getVisibility()==View.GONE)
   {
    gridView.setVisibility(View.VISIBLE);
   }
   else
   {
    if(linearLayout != null && linearLayout.getVisibility() == View.VISIBLE) {
     linearLayout.setVisibility(View.GONE);
    }
    gridView.setVisibility(View.GONE);
   }
  }
  return super.onKeyDown(keyCode, event);
 }

 
 public void loadLL()
 {
  if(linearLayout==null){
   linearLayout=(LinearLayout)this.findViewById(R.id.ll_search);
  }
 }

 public void loadMenu()
 {

     gridView=(GridView)findViewById(R.id.gv_button_menu);
  gridView.setBackgroundResource(R.drawable.channelgallery_bg);
  gridView.setHorizontalSpacing(10);
  gridView.setVerticalSpacing(10);
  gridView.setGravity(Gravity.CENTER);
  gridView.setNumColumns(4);
  
  ArrayList data=new ArrayList();
  HashMap map=new HashMap();
  map.put("image", R.drawable.menu_new_user);
  map.put("name", "添加");
  data.add(map);
  map=new HashMap();
  map.put("image", R.drawable.menu_search);
  map.put("name", "查找");
  data.add(map);
  map=new HashMap();
  map.put("image", R.drawable.menu_delete);
  map.put("name", "删除");
  data.add(map);
  map=new HashMap();
  map.put("image", R.drawable.menu_exit);
  map.put("name", "退出");
  data.add(map);
  
  String from[]={"image","name"};
  int to[]={R.id.item_image,R.id.item_text};
  SimpleAdapter adapter=new SimpleAdapter(this, data, R.layout.menu, from, to);
  
  gridView.setAdapter(adapter);
  
  gridView.setOnItemClickListener(new gridViewOnItemClickListener());
 }
 class gridViewOnItemClickListener implements OnItemClickListener{

  @Override
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    long arg3) {
   // TODO Auto-generated method stub
   switch(arg2)
   {
    case 0:{
     String itemName=String.valueOf(gridView.getItemAtPosition(arg2));
     Toast.makeText(menu2.this, itemName, Toast.LENGTH_LONG).show();break;
    }
    case 1:{
     loadLL();
     if(linearLayout.getVisibility()==View.VISIBLE) {
      linearLayout.setVisibility(View.GONE);
     } else {
      linearLayout.setVisibility(View.VISIBLE);
     
     }
     
     break;
    }
    case 2:{
     String itemName=String.valueOf(gridView.getItemAtPosition(arg2));
     Toast.makeText(menu2.this, itemName, Toast.LENGTH_LONG).show();break;
    }
    case 3:{
     Intent intent=new Intent(menu2.this,menuActivity.class);
     menu2.this.startActivity(intent);break;
    }
    
   }
  }}

}

posted on 2011-05-04 23:58  胡神  阅读(3434)  评论(0)    收藏  举报