我遇到了BaseAdapter问题。我正在使用Gridview来显示我的内容。我需要添加一些空白区域。 但是,如果我上下滚动blankfields随机移动。Android Baseadapter固定的空白区域
我的问题是:我如何让他们留在正确的位置?
public class GridviewAdapter extends BaseAdapter {
private ArrayList<String> sign;
private ArrayList<String> roman;
private ArrayList<String> check;
private Activity activity;
private int minusValue=0;
private boolean fulllist;
public GridviewAdapter(Activity activity, ArrayList<String> sign,ArrayList<String> roman,ArrayList<String> check,boolean fulllist) {
super();
this.activity=activity;
this.sign=sign;
this.roman=roman;
this.check=check;
this.fulllist=fulllist;
}
@Override
public int getCount() {
if(fulllist)
{
return sign.size()+5;
}
else
{
return sign.size();
}
}
public void updateList(ArrayList<String> newcheck) {
check.clear();
check.addAll(newcheck);
this.notifyDataSetChanged();
}
@Override
public Object getItem(int position) {
return sign.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public static class ViewHolder
{
public TextView signv;
public TextView romanv;
public TextView checkv;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder view= new ViewHolder();
LayoutInflater inflator = activity.getLayoutInflater();
if (convertView == null) {
view = new ViewHolder();
convertView = inflator.inflate(R.layout.gridblock, null);
view.signv = (TextView) convertView.findViewById(R.id.sign);
view.checkv = (TextView) convertView.findViewById(R.id.check);
view.romanv = (TextView) convertView.findViewById(R.id.roman);
convertView.setTag(view);
} else {
view = (ViewHolder) convertView.getTag();
}
if(position==36) {
convertView.setVisibility(View.GONE);
convertView.setClickable(false);
convertView.setEnabled(false);
minusValue=minusValue-1;
}
else if(position==38) {
convertView.setVisibility(View.GONE);
convertView.setClickable(false);
convertView.setEnabled(false);
minusValue=minusValue-1;
}
else if(position==46) {
convertView.setVisibility(View.GONE);
convertView.setClickable(false);
convertView.setEnabled(false);
minusValue=minusValue-1;
}
else if(position==47) {
convertView.setVisibility(View.GONE);
convertView.setClickable(false);
convertView.setEnabled(false);
minusValue=minusValue-1;
}
else if(position==48) {
convertView.setVisibility(View.GONE);
convertView.setClickable(false);
convertView.setEnabled(false);
minusValue=minusValue-1;
}
else
{
view.signv.setText(sign.get(0));
view.checkv.setText(check.get(0));
if(view.checkv.getText().equals("✘"))
{
view.checkv.setTextColor(Color.RED);
}
else
{
view.checkv.setTextColor(Color.GREEN);
}
view.romanv.setText(roman.get(0));
}
return convertView;
}
使用INVISIBLE而不是GONE作为空白。 – 2014-08-29 09:48:33
没有解决我的问题:)但谢谢 – demon2005 2014-08-29 10:06:27