(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;
}
}
}}
}