这是我的适配器的getView,它为每个项目提供了错误的位置!所以我无法访问我的商品详情。请帮我解决这个问题,我真的很困惑: - (
public class adapter_common extends ArrayAdapter<item> {
private final Context context;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View rowView = inflater.inflate(R.layout.post, parent, false);
Rowposition = position;
username.setText(itemsArrayList.get(position).getTitle());
message_content.setText(itemsArrayList.get(position).getDes());
like_count.setText(itemsArrayList.get(position).getLike() + " لایک");
//row_pos.setText(itemsArrayList.get(position).getRow_pos());
final String Like = itemsArrayList.get(position).getLike();
btn_send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
});
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
btn_like.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
return rowView;
}
public adapter_common(Context context, ArrayList<item> itemsArrayList) {
super(context, R.layout.post, itemsArrayList);
context = context;
this.context = context;
this.itemsArrayList = itemsArrayList;
}
}
答案 0 :(得分:0)
从我的应用程序中获取方法getView
public SaldoProdutos getItem(int position) {
if (itemList != null)
return itemList.get(position);
return null;
}
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
v = null;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.saldo_list_item, null);
}
SaldoProdutos produtos = itemList.get(position);
TextView Produtos = (TextView) v.findViewById(R.id.ProdutoSaldo);
Produtos.setText(""+produtos.descricao);
TextView Pontos = (TextView) v.findViewById(R.id.PontosSaldo);
Pontos.setText("" + produtos.pontos + " Pontos");
ColorGenerator generator = ColorGenerator.MATERIAL;
int color1 = generator.getRandomColor();
String inicial = (String) Produtos.getText();
TextDrawable drawable = TextDrawable.builder().buildRound(inicial.substring(0,1), color1 );
ImageView imagem = (ImageView) v.findViewById(R.id.iconecliente);
imagem.setImageDrawable(drawable);
if (mSelectedItemsIds.get(position))
{
ImageView check = (ImageView) v.findViewById(R.id.check);
v.setBackgroundColor(HIGHLIGHT_COLOR);
TextDrawable drawable1 = TextDrawable.builder().buildRound(" ", 0xff616161);
imagem.setImageDrawable(drawable1);
check.setVisibility(View.VISIBLE);
}
else {
ImageView check = (ImageView) v.findViewById(R.id.check);
v.setBackgroundColor(Color.TRANSPARENT);
String inicial1 = (String) Produtos.getText();
TextDrawable drawable1 = TextDrawable.builder().buildRound(inicial1.substring(0, 1), color1);
ImageView imagem1 = (ImageView) v.findViewById(R.id.iconecliente);
imagem1.setImageDrawable(drawable1);
check.setVisibility(View.GONE);
}
return v;
}
在你的活动或片段中你做了adapter.getItem(position)
答案 1 :(得分:0)
正在使用Rowposition
变量来导航细节?
我猜这是一个全局变量,它保存了'position'的最后一个调用值,并且在使用它时几乎返回了错误的索引。而是将position
变量作为final,并在clickListeners中使用它。
问候,是