简单实现设置Gridview默认选中状态
2012-08-20 11:15
633 查看
main.XMl
XML code
Gridview item Xml
XML code
mainActiviy
Java code
Java code
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; } }
相关文章推荐
- 自定义checkbox要设置下默认选中状态,不然个别手机会不绘制背景图
- CheckBox控件默认选中,提交时永远获得选中状态的实现代码
- Asp.net简单代码设置GridView自适应列宽不变形实现思路与代码
- 微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
- 实现uitable cell中点击button设置当前cell为选中状态
- RadioGroup里设置RadioButton为初始的都不选中状态及设置默认选中出现的问题及解决方法
- Android实现取消GridView中Item选中时默认的背景色
- XtraGrid GridView设置默认选中的行颜色
- 使用js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
- 改变checkbox默认选中状态及取值的实现代码
- GridView实现选中状态
- Asp.net简单代码设置GridView自适应列宽不变形实现思路与代码
- JS实现对gridview中的checkbox的选中个数记录,并在页面刷新时保持checkbox的状态 .
- win32 设置raddiobutton 为默认选中状态
- Gridpanel中设置默认选中行的功能实现
- Gridview实现分页保留Check的选中状态
- vue2.0实现简单的路由并设置默认路由
- android gridview默认显示部分数据,点击按钮显示全部,再点击回到默认状态,选中变颜色
- iOS UITableView 和 UICollectionView 设置默认选中状态
- Android Trick 3: GridView动态加载数据情况下,选中状态的实现