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