getView为项目提供错误的位置

时间:2015-11-01 22:42:32

标签: android

这是我的适配器的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;
}

}

2 个答案:

答案 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中使用它。

问候,是

相关问题