Java 使用android的2D数组在gridview中动态显示文本
我目前在滚动视图中有一个gridview,我想在其中显示信息 从网格视图内的二维数组中,并使其可滚动。我为gridView创建了一个适配器来处理此作业,因为我希望稍后将其用于其他布局。我遇到的问题是网格视图中只显示阵列的第一行和第二行的一部分。 下面是我创建的适配器的代码,我觉得问题就在其中的某个地方:Java 使用android的2D数组在gridview中动态显示文本,java,android,android-gridview,Java,Android,Android Gridview,我目前在滚动视图中有一个gridview,我想在其中显示信息 从网格视图内的二维数组中,并使其可滚动。我为gridView创建了一个适配器来处理此作业,因为我希望稍后将其用于其他布局。我遇到的问题是网格视图中只显示阵列的第一行和第二行的一部分。 下面是我创建的适配器的代码,我觉得问题就在其中的某个地方: public class GridViewAdapter extends BaseAdapter { private Context context; String[][] gr
public class GridViewAdapter extends BaseAdapter
{
private Context context;
String[][] gridContent;
int rowPosition, columnPosition, count;
/**
*
*/
public GridViewAdapter(Context c, String[][] content)
{
// TODO Auto-generated constructor stub
context = c;
count = 0;
gridContent = new String[content.length][content[0].length];
for (int i = 0; i < gridContent.length; i++)
{
for (int j = 0; j < gridContent[i].length; j++)
{
gridContent[i][j] = content[i][j];
count++;
}
}
rowPosition = 0;
columnPosition = 0;
}
public int getCount()
{
return count;
}
public int getRowCount()
{
return gridContent.length;
}
public int getColumnCount()
{
return gridContent[0].length;
}
public Object getItem(int rowNum, int columnNum)
{
return gridContent[rowNum][columnNum];
}
public View getView(int position, View view, ViewGroup group)
{
TextView textView;
if (view == null)
{
textView = new TextView(context);
//textView.setPadding(8, 8, 8, 8);
}
else
{
textView = (TextView) view;
}
columnPosition = position % gridContent[0].length;
rowPosition = (position - columnPosition)/gridContent[0].length;
textView.setText(gridContent[rowPosition][columnPosition]);
//textView.setTextColor(000000);
//textView.setTextSize(13);
return textView;
}
public Object getItem(int position)
{
return null;
}
public long getItemId(int position)
{
return 0;
}
}
公共类GridViewAdapter扩展了BaseAdapter
{
私人语境;
字符串[][]gridContent;
int行位置、列位置、计数;
/**
*
*/
公共GridViewAdapter(上下文c,字符串[][]内容)
{
//TODO自动生成的构造函数存根
上下文=c;
计数=0;
gridContent=新字符串[content.length][content[0].length];
for(int i=0;i
任何帮助都将不胜感激。
多谢各位
我不明白为什么它在第一排和第二排的一部分工作得很好,但是
然后它就被切断了。以下是我的scrollview和gridview的xml代码:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/verticalScrollView"
android:layout_width="fill_parent"
android:layout_height="400dp"
android:overScrollMode="always"
android:isScrollContainer="true"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbars="vertical"
android:layout_alignParentLeft="true"
android:layout_below="@+id/networkResults" >
<GridView
android:id="@+id/scheduleGrid"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:gravity="left"
android:horizontalSpacing="10dp"
android:isScrollContainer="true"
android:numColumns="5"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >
</GridView>
</ScrollView>
您的getView()
-方法末尾的部分毫无意义。你想在那里存档什么?我试图使用变量位置来关联2D数组中的特定行和列。可以为数组中的每个单元格指定一个值,其中单元格(X,Y)=(X*#列数)+Y=位置。使用这个和位置号,我试图确定columnPosition[位置号和列数的模]和rowPosition[位置#-columnPosition)和列数的商]。用这个从2D数组中获取值并在textview中设置文本。好吧,看起来我找到了问题的来源,但我仍然不明白为什么会发生。我从布局中删除了scrollview,一切都很顺利。我不知道如果信息溢出布局的宽度/高度,gridview布局将自动成为可滚动的。我在gridview布局之前实现了scrollview部分,所以我花了一些时间来确定bug的根源。谢谢你的帮助,非常感谢。