我尝试使用Gridview显示餐厅中的表总数。用户可以按整数设置表的总数。
每个表都有一个从1开始的ID。但是,我的所有表号都是相同的。看起来循环出了问题?
class my_adapter extends BaseAdapter{
LayoutInflater inflater=null;
Context ctx;
int table_count;
my_adapter(Context ctx, int table_count){
this.ctx=ctx;
this.table_count=table_count;
}
@Override
public int getCount() {
return table_count; // total no. of tables
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View row=view;
if(row==null){
inflater=(LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row=inflater.inflate(R.layout.single,null);
}
TextView tv_table_no=(TextView)row.findViewById(R.id.table_no);
for(int count=1;count<=table_count;count++){
tv_table_no.setText("table number: "+count);
}
return row;
}
}
如果table_count是9,那么将有9个表没有表。从1-9开始。
有人知道这里有什么问题吗?
答案 0 :(得分:1)
替换此
for(int count=1;count<=table_count;count++){
tv_table_no.setText("table number: "+count);
}
通过
tv_table_no.setText("table number: "+i);
希望最好!
答案 1 :(得分:1)
此for循环错误
for(int count=1;count<=table_count;count++){
tv_table_no.setText("table number: "+count);
}
这里不需要循环。修改你的代码写这样
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View row=view;
if(row==null){
inflater=(LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row=inflater.inflate(R.layout.single,null);
}
TextView tv_table_no=(TextView)row.findViewById(R.id.table_no);
tv_table_no.setText("table number: "+(i+1)); //i is the position
return row;
}
答案 2 :(得分:1)
您正在循环使用getView()
方法。
实际上getView()
方法根据getCount()
方法调用。
删除for
循环并设置i
的值,而不是TextView
上的计数。
只需将方法getView()
替换为:
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
inflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.single,null);
TextView tv_table_no=(TextView)row.findViewById(R.id.table_no);
tv_table_no.setText("table number: "+i);
return row;
}
答案 3 :(得分:0)
你把Count放在for循环中,所以它显示你的最后位置。请把它放在for循环之外。