gpt4 book ai didi

java - Android 自定义适配器部分工作

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:15 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,在主屏幕中我使用一个 Web 服务并在 ListView 中显示结果。

问题:

  1. 仅更新拇指。如果我使用简单的适配器,一切正常。如果我使用自定义适配器,则仅更新拇指;

  2. 当我滚动时,每个 ListView 都会更新。我希望此 ListView 在打开应用程序时更新一次。

MainActivity.java

// Lista de imóveis
List<HashMap<String, String>> aList = new ArrayList<HashMap<String, String>>();
for(Integer i = 0, n = Referencias.size(); n > i; ++i)
{
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("referencia", "Imóvel " + Referencias.get(i));

hm.put("valor", Valor.get(i).toString());
hm.put("dormitorio", Dormitorio.get(i).toString());
hm.put("vagas", Vagas.get(i).toString());
hm.put("banheiro", Banheiro.get(i).toString());
hm.put("subcategoria", Subcategoria.get(i).toString());
hm.put("bairro", Bairro.get(i).toString());
hm.put("img", Imagem.get(i).toString());
aList.add(hm);
}

// Keys used in Hashmap
String[] from = {"referencia", "valor", "dormitorio", "vagas", "banheiro", "subcategoria", "bairro", "img"};

// Ids of views in listview_layout
int[] to = {R.id.referencia, R.id.valor, R.id.num_beds, R.id.num_garagens, R.id.num_baths, R.id.tipo, R.id.bairro, R.id.thumb};

MainAdapter CustomAdapter = new MainAdapter(MainActivity.this, aList, R.layout.list_main_imoveis, from, to);

ListView listView = (ListView)findViewById(R.id.listViewImoveis);
listView.setAdapter(CustomAdapter);

MainAdapter.java

package br.com.gtaimoveis.adapter;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.SimpleAdapter;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import br.com.gtaimoveis.R;
import br.com.gtaimoveis.util.DownloadTask;

public class MainAdapter extends SimpleAdapter {
private Context mContext;
public LayoutInflater inflater = null;

public MainAdapter(Context context,
List<? extends Map<String, ?>> data, int resource, String[] from,
int[] to) {
super(context, data, resource, from, to);
mContext = context;
inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.list_main_imoveis, null);

HashMap<String, String> data = (HashMap<String, String>) getItem(position);


Log.d(">>>>>", data.toString()); // << Data fine here

new DownloadTask((ImageView) vi.findViewById(R.id.thumb))
.execute((String) data.get("img").toString());

return vi;
}
}

谁能看出我哪里出错了?

最佳答案

现在我已经解决了问题1。在getView方法中我更新了所有信息。

TextView Valor = (TextView) vi.findViewById(R.id.valor);
Valor .setText(data.get("valor"));

问题2尚未解决。

关于java - Android 自定义适配器部分工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31481006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com