expandablelistview嵌套 gridview 数据错乱

windcolor88 2012-08-01 03:34:07
怎么让每个gridview 显示的内容不一样

package com.src.zhang.demo;

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

import com.src.zhang.demo.ListViewAdapter.TreeNode;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;

import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.MeasureSpec;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ListViewActivity extends Activity
{
ExpandableListView expandableListView;

ListViewAdapter treeViewAdapter;

public String[] groups = { "列表1", "列表2", "列表3" };

public String[][] child = { { "" }, { "" }, { "", "" } };

public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

treeViewAdapter = new ListViewAdapter(this,
ListViewAdapter.PaddingLeft >> 1);
expandableListView = (ExpandableListView) this
.findViewById(R.id.expandableListView);

List<ListViewAdapter.TreeNode> treeNode = treeViewAdapter.GetTreeNode();
for (int i = 0; i < groups.length; i++)
{
ListViewAdapter.TreeNode node = new ListViewAdapter.TreeNode();
node.parent = groups[i];
for (int ii = 0; ii < child[i].length; ii++)
{
node.childs.add(child[i][ii]);
}
treeNode.add(node);
}

treeViewAdapter.UpdateTreeNode(treeNode);
expandableListView.setAdapter(treeViewAdapter);
}

class MyGridView extends GridView
{
public MyGridView(android.content.Context context,
android.util.AttributeSet attrs)
{
super(context, attrs);
}

/**
* 设置不滚动
*/
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
}
/*************************/




package com.src.zhang.demo;

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

import android.content.Context;

import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseExpandableListAdapter;
import android.widget.Toast;

import android.widget.SimpleAdapter;
import android.widget.TextView;

public class ListViewAdapter extends BaseExpandableListAdapter implements
OnItemClickListener
{
public static final int ItemHeight = 48;// 每项的高度
public static final int PaddingLeft = 36;// 每项的高度
private int myPaddingLeft = 0;

private MyGridView toolbarGrid;

private String menu_toolbar_name_array[] = { "存储卡", "我的下载", "图书导入", "系统备份",
"系统恢复", "清除全部", "在线升级", "快速入门", "关于开卷", "退出系统", "在线升级", "快速入门",
"关于开卷", "退出系统", "关于开卷", "退出系统", "关于开卷", "退出系统", "关于开卷", "退出系统" };
private int menu_toolbar_image_array[] = { R.drawable.icon_sdcard,
R.drawable.icon_sdcard, R.drawable.icon_sdcard,
R.drawable.icon_sdcard, R.drawable.icon_sdcard,
R.drawable.icon_sdcard, R.drawable.icon_sdcard,
R.drawable.icon_sdcard, R.drawable.icon_sdcard,
R.drawable.icon_sdcard, R.drawable.icon_sdcard,
R.drawable.icon_sdcard, R.drawable.icon_sdcard,
R.drawable.icon_sdcard, R.drawable.icon_sdcard,
R.drawable.icon_sdcard, R.drawable.icon_sdcard,
R.drawable.icon_sdcard, R.drawable.icon_sdcard,
R.drawable.icon_sdcard };

private List<TreeNode> treeNodes = new ArrayList<TreeNode>();

private Context parentContext;

private LayoutInflater layoutInflater;

static public class TreeNode
{
Object parent;
List<Object> childs = new ArrayList<Object>();
}

public ListViewAdapter(Context view, int myPaddingLeft)
{
parentContext = view;
this.myPaddingLeft = myPaddingLeft;
}

public List<TreeNode> GetTreeNode()
{
return treeNodes;
}

public void UpdateTreeNode(List<TreeNode> nodes)
{
treeNodes = nodes;
}

public void RemoveAll()
{
treeNodes.clear();
}

public Object getChild(int groupPosition, int childPosition)
{
return treeNodes.get(groupPosition).childs.get(childPosition);
}

public int getChildrenCount(int groupPosition)
{
return treeNodes.get(groupPosition).childs.size();
}

static public TextView getTextView(Context context)
{
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, ItemHeight);

TextView textView = new TextView(context);
textView.setLayoutParams(lp);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
return textView;
}

/**
* 可自定义ExpandableListView
*/
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent)
{
if (convertView == null)
{
layoutInflater = (LayoutInflater) parentContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.view, null);
toolbarGrid = (MyGridView) convertView
.findViewById(R.id.GridView_toolbar);
toolbarGrid.setNumColumns(4);// 设置每行列数
toolbarGrid.setGravity(Gravity.CENTER);// 位置居中
toolbarGrid.setHorizontalSpacing(10);// 水平间隔
toolbarGrid.setAdapter(getMenuAdapter(menu_toolbar_name_array,
menu_toolbar_image_array));// 设置菜单Adapter
toolbarGrid.setOnItemClickListener(this);
}
return convertView;
}

/**
* 可自定义list
*/
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent)
{
TextView textView = getTextView(this.parentContext);
textView.setText(getGroup(groupPosition).toString());
textView.setPadding(myPaddingLeft + PaddingLeft, 0, 0, 0);
return textView;
}

public long getChildId(int groupPosition, int childPosition)
{
return childPosition;
}

public Object getGroup(int groupPosition)
{
return treeNodes.get(groupPosition).parent;
}

public int getGroupCount()
{
return treeNodes.size();
}

public long getGroupId(int groupPosition)
{
return groupPosition;
}

public boolean isChildSelectable(int groupPosition, int childPosition)
{
return true;
}

public boolean hasStableIds()
{
return true;
}

/**
* 构造菜单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(parentContext, data,
R.layout.item_menu, new String[] { "itemImage", "itemText" },
new int[] { R.id.item_image, R.id.item_text });
return simperAdapter;
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id)
{
Toast.makeText(parentContext, "当前选中的是:" + position, Toast.LENGTH_SHORT)
.show();

}
}
...全文
288 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
小爷要吃肉 2014-07-23
  • 打赏
  • 举报
回复
我也在做这个,项目里有筛选功能,搞了三天了
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧