简单实现设置Gridview默认选中状态

来源:互联网 发布:全知之眼 x-filex 编辑:程序博客网 时间:2024/05/16 10:20
main.XMl
XML code
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" android:id="@+id/loginRoot" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:gravity="center_horizontal" android:background="@drawable/transition_line" android:layout_width="fill_parent" android:layout_height="wrap_content"> </LinearLayout> <!-- 中间动态加载View --> <ScrollView android:measureAllChildren="true" android:id="@+id/containerBody" android:layout_weight="1" android:layout_height="fill_parent" android:layout_width="fill_parent"> </ScrollView> <GridView android:id="@+id/GridView_toolbar" android:layout_height="60dip" android:layout_width="fill_parent" android:layout_alignParentBottom="true"> </GridView></LinearLayout>


Gridview item Xml

XML code
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout_Item" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="10dip"> <ImageView android:id="@+id/item_image" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="27dip"></ImageView> <TextView android:layout_below="@id/item_image" android:id="@+id/item_text" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="13dip"></TextView> </RelativeLayout>


mainActiviy

Java code
package com.android.cyts.travel.publics.common;import java.util.ArrayList;import java.util.HashMap;import android.content.Intent;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.view.Window;import android.widget.AdapterView;import android.widget.GridView;import android.widget.ImageView;import android.widget.ScrollView;import android.widget.SimpleAdapter;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;import android.app.ActivityGroup;/** * * @author * @created */public class MainMenuActivity extends ActivityGroup { /** 默认首页状态 */ private boolean status; private boolean pagehomestatus; /** 动态加载的容器 */ private ScrollView container; /** 菜单 */ private GridView menubarGrid; private Intent intent = null; private showImage topImgAdapter; private FootBarAdapter footbarAdapter; private final int TOOLBAR_ITEM_PAGEHOME = 0; private final int TOOLBAR_ITEM_PHOTO = 1; private final int TOOLBAR_ITEM_TRAVEL = 2; private final int TOOLBAR_ITEM_MAP = 3; private final int TOOLBAR_ITEM_INFORMATION = 4; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); container = (ScrollView) findViewById(R.id.containerBody); showMenu(); subActivity(); } /** 底部菜单图片 **/ int[] menu_toolbar_image_array = { R.drawable.pagehome, R.drawable.photo, R.drawable.travel, R.drawable.map, R.drawable.information }; /** 底部菜单文字 **/ String[] menu_toolbar_name_array = { "!!", "!!", "!!", "!!", "!!" }; public void showMenu() { intent = new Intent(); // 创建底部菜单 Toolbar menubarGrid = (GridView) findViewById(R.id.GridView_toolbar); menubarGrid.setBackgroundResource(R.drawable.bg);// 设置背景 menubarGrid.setNumColumns(5);// 设置每行列数 menubarGrid.setGravity(Gravity.CENTER);// 位置居中 menubarGrid.setVerticalSpacing(10);// 垂直间隔 menubarGrid.setHorizontalSpacing(10);// 水平间隔 int width = this.getWindowManager().getDefaultDisplay().getWidth() / menu_toolbar_image_array.length; topImgAdapter = new showImage(this, menu_toolbar_image_array, width, 50, R.drawable.headlogo); // menubarGrid.setAdapter(topImgAdapter); menubarGrid.setAdapter(getMenuAdapter(menu_toolbar_name_array, menu_toolbar_image_array));// 设置菜单Adapter menubarGrid.setSelector(new ColorDrawable(Color.TRANSPARENT)); /** 监听底部菜单选项 **/ menubarGrid.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { status = true;// Toast.makeText(MainMenuActivity.this,// menu_toolbar_name_array[arg2], Toast.LENGTH_SHORT)// .show(); footbarAdapter.setSelectedPosition(arg2); // topImgAdapter.SetFocus(arg2); footbarAdapter.notifyDataSetInvalidated();// footbarAdapter.SetFocus(arg2); switch (arg2) { case TOOLBAR_ITEM_PAGEHOME: intent.setClass(MainMenuActivity.this, ****.class); break; case TOOLBAR_ITEM_PHOTO: pagehomestatus=false; intent.setClass(MainMenuActivity.this, ****.class); break; case TOOLBAR_ITEM_TRAVEL: pagehomestatus=false; intent.setClass(MainMenuActivity.this, ****.class); break; case TOOLBAR_ITEM_MAP: pagehomestatus=false; intent.setClass(MainMenuActivity.this, ****.class); break; case TOOLBAR_ITEM_INFORMATION: pagehomestatus=false; intent.setClass(MainMenuActivity.this, Information.class); // toolbarGrid.setVisibility(View.GONE);//隐藏菜单View.VISIBLE break; } if(!pagehomestatus) subActivity(); } }); } /** * 动态添加内容 */ public void subActivity() { if (status == false) { intent.setClass(MainMenuActivity.this, PageHome.class); pagehomestatus=true; } container.removeAllViews(); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Activity 转为 View Window subActivity = getLocalActivityManager().startActivity( "subActivity", intent); // 容器添加View container.addView(subActivity.getDecorView(), LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); } /** * 构造菜单Adapter * * @param menuNameArray * 名称 * @param imageResourceArray * 图片 * @return SimpleAdapter */ private SimpleAdapter getMenuAdapter(String[] menuNameArray, int[] imageResourceArray) { ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < menuNameArray.length; i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("itemImage", imageResourceArray[i]); map.put("itemText", menuNameArray[i]); data.add(map); }// SimpleAdapter simperAdapter = new SimpleAdapter(MainMenuActivity.this,// data, R.layout.item_menu, new String[] { "itemImage",// "itemText" }, new int[] { R.id.item_image,// R.id.item_text });// return simperAdapter; footbarAdapter = new FootBarAdapter(this, data, R.layout.item_menu, new String[] { "itemImage", "itemText" }, new int[] { R.id.item_image, R.id.item_text }); return footbarAdapter; }}


Java code
package com.android.cyts.travel.publics.common;import java.util.ArrayList;import java.util.List;import java.util.Map;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.SimpleAdapter;/** * @author  * @created on  * @version $Id$ */public class FootBarAdapter extends SimpleAdapter {    private View v;    private ArrayList<View> av = new ArrayList<View>();    public FootBarAdapter(Context context, List<? extends Map<String, ?>> data,            int resource, String[] from, int[] to) {        super(context, data, resource, from, to);    }//    public void SetFocus(int index) {//        for (int i = 0; i < 5; i++) {//            if (i != index) {//                av.get(i).setBackgroundResource(0);// 恢复未选中的样式//            }//        }//        av.get(index).setBackgroundResource(R.drawable.headlogo);// 设置选中的样式//        x=0;//    }         private int selectedPosition = 0;// 选中的位置      public void setSelectedPosition(int position) {           selectedPosition = position;       }                int x = 0;    public View getView(int position, View convertView, ViewGroup parent) {        v = super.getView(position, convertView, parent);        x++;        if (position == selectedPosition) {            v.setBackgroundResource(R.drawable.headlogo);        }        else{            v.setBackgroundResource(0);        }//        System.out.println("_---" + x);//        System.out.println("_+++" + position);//        if (x >= 2 && x <= 6) {//            av.add(v);//        }//        System.out.println("!!!" + av.size());        return v;    }}