Java 填充GridView问题
所以我一直在应用程序中使用网格视图,这个问题现在困扰着我,因为在大约一周的尝试后我无法解决这个问题 我正在尝试用当前存储在多维数组中的时间表填充网格视图,但唯一填充的索引是第一个索引。我的BaseAdapter类的副本如下所示:Java 填充GridView问题,java,android,gridview,multidimensional-array,Java,Android,Gridview,Multidimensional Array,所以我一直在应用程序中使用网格视图,这个问题现在困扰着我,因为在大约一周的尝试后我无法解决这个问题 我正在尝试用当前存储在多维数组中的时间表填充网格视图,但唯一填充的索引是第一个索引。我的BaseAdapter类的副本如下所示: package com.ian.calendar.event; import android.content.Context; import android.view.LayoutInflater; import android.view.View; impo
package com.ian.calendar.event;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.ian.calendar.database.DatabaseHandler;
import com.ian.campusmap.R;
public class ModuleEvents extends BaseAdapter {
private String weekday;
private Context context;
private View view;
private TextView[] textView;
private DatabaseHandler dbHandler;
private int eventNumber;
private String[][] moduleA;
public ModuleEvents(Context _context, String _weekday) {
context = _context;
weekday = _weekday;
dbHandler = new DatabaseHandler(context);
dbHandler.populateDatabase();
dbHandler.getTimeTable();
}
public int getCount() {
return 6;
}
public View getView(int position, View convertView, ViewGroup parent) {
int i = 1;
eventNumber = getEventsOnWeekday();
moduleA = new String[eventNumber][6];
textView = new TextView[eventNumber];
do {
if(weekday.equals(dbHandler.getTimeTableWeekday(i))) {
for(int j = 0; j < eventNumber; j++) {
moduleA[j][0] = dbHandler.listArray(i, 0);
moduleA[j][1] = dbHandler.listArray(i, 1);
moduleA[j][2] = dbHandler.listArray(i, 3);
moduleA[j][3] = dbHandler.listArray(i, 5);
moduleA[j][4] = dbHandler.listArray(i, 6);
moduleA[j][5] = dbHandler.listArray(i, 2);
i++;
}
} else {
i++;
}
} while(i < dbHandler.count);
if(convertView == null) {
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.grid_item_2, null);
}
for(int k = 0; k < moduleA.length; k++) {
textView[k] = new TextView(context);
textView[k] = (TextView) view.findViewById(R.id.txtModuleID);
textView[k].setText(moduleA[k][position]);
}
return view;
}
public Object getItem(int arg0) {
return null;
}
public long getItemId(int arg0) {
return 0;
}
public int getEventsOnWeekday() {
int events = 0;
for(int i = 1; i <= 9; i++) {
if(weekday.equals(dbHandler.getTimeTableWeekday(i))) {
events++;
}
}
return events;
}
}
package com.ian.calendar.event;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.TextView;
导入com.ian.calendar.database.DatabaseHandler;
导入com.ian.campusmap.R;
公共类ModuleEvents扩展BaseAdapter{
私人字符串工作日;
私人语境;
私人视野;
私有文本视图[]文本视图;
私有数据库处理程序dbHandler;
私有int事件号;
私有字符串[][]模块a;
公共模块事件(上下文_上下文,字符串_工作日){
上下文=_上下文;
工作日=_工作日;
dbHandler=新的DatabaseHandler(上下文);
dbHandler.populateDatabase();
dbHandler.getTimeTable();
}
public int getCount(){
返回6;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
int i=1;
eventNumber=getEventsOnWeekday();
moduleA=新字符串[eventNumber][6];
textView=新的textView[eventNumber];
做{
if(weekday.equals(dbHandler.getTimeTableWeekday(i))){
对于(int j=0;j 对于(int i=1;i这部分看起来可疑:
do {
return textView[k];
} while(l < moduleA.length);
do{
返回文本视图[k];
}而(l<模长);
If表示您的“getView”函数将始终返回第一个TextView,仅此而已……phtrivier:抱歉,这是我多余代码的一部分。如果我们要删除它,只需执行“return view;”,它将只返回数组的最后一个索引。