簡體   English   中英

Android自定義適配器部分工作

[英]Android Custom Adapter work partially

我有一個android應用,在主屏幕上可以使用網絡服務,並在列表視圖中顯示結果。

問題:

  1. 僅拇指更新。 如果我使用簡單的適配器,則一切正常。 如果使用自定義適配器,則僅更新拇指;

  2. 滾動時,每個列表視圖都會更新。 我希望此列表視圖在打開應用時更新一次。

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尚未解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM