Android getView为项目提供错误的位置

Android getView为项目提供错误的位置,android,Android,这是我的适配器的getView,它为每个项目提供了错误的位置!因此,我无法访问我的项目详细信息。请帮我解决这个问题,我真的很困惑:-( 公共类适配器\u公共扩展ArrayAdapter{ 私人最终语境; @凌驾 公共视图getView(int位置、视图转换视图、视图组父视图){ LayoutFlater充气器=(LayoutFlater)上下文 .getSystemService(上下文布局\充气机\服务); 最终视图rowView=充气机充气(R.layout.post,父项,false);

这是我的适配器的getView,它为每个项目提供了错误的位置!因此,我无法访问我的项目详细信息。请帮我解决这个问题,我真的很困惑:-(

公共类适配器\u公共扩展ArrayAdapter{
私人最终语境;
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)上下文
.getSystemService(上下文布局\充气机\服务);
最终视图rowView=充气机充气(R.layout.post,父项,false);
Rowposition=位置;
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());
最后一个字符串Like=itemsArrayList.get(position.getLike();
btn_send.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
});
btn_save.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
}
});
btn_like.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
}
});
返回行视图;
}
公共适配器_公共(上下文上下文,ArrayList itemsArrayList){
super(context、R.layout.post、itemsArrayList);
上下文=上下文;
this.context=上下文;
this.itemsArrayList=itemsArrayList;
}

}

方法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;

}

在活动或片段中,您需要适配器。getItem(position)

是否使用
Rowposition
varaible导航到详细信息

我猜这是一个全局变量,它保存了最后调用的“position”值,并且在使用它时几乎返回了错误的索引。相反,将
position
变量作为最终变量,并在clickListeners中使用它


关于,
sha

发布你的整个课程。不能假设你的逻辑。用户名和消息内容以及喜欢的计数每次都被替换,你没有从android系统给你的膨胀视图中获取它们,为什么?那么列表的意义是什么?嘿,j2emanue,现在项被正确地设置到适配器中,但是每行都有错误的位置ion!你的列表滚动情况如何?你的rootview总是空的。最好显示你的初始化用户名和消息内容。顺便说一下,在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;

}