Advies voor aangepaste lijstweergave met titel

ik wil een aangepaste lijstweergave met een titel toevoegen aan de lijst. Ik heb wat hints gevonden maar kon mijn probleem oplossen. Dus misschien kan iemand hier een idee geven:

mijn klas (bevat nog twee klassen)

package com.droidfish.apps.acli;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class ListProduct2 extends Activity {
private static ArrayList sProducts;
private static String[] sPro;
private Integer iType;

private static class EfficientAdapter extends BaseAdapter {
    private LayoutInflater mInflater;

    public EfficientAdapter(Context context) {
        mInflater = LayoutInflater.from(context);

    }

    public int getCount() {
        return sPro.length;
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.list_item, null);
            holder = new ViewHolder();
            holder.text = (TextView) convertView
                    .findViewById(R.id.listitemdef);
            Log.d("Create item", sPro[position]);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.text.setText(sPro[position]);

        return convertView;
    }

    static class ViewHolder {
        TextView text;
    }
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.listproducts);
    savedInstanceState = this.getIntent().getExtras();
    sProducts = savedInstanceState.getStringArrayList("aircrafts");
    sPro = (String[]) sProducts.toArray(new String[0]);
    iType = savedInstanceState.getInt("type");
    ListView l1 = (ListView) findViewById(R.id.ListView01);
    TextView titleList = (TextView) findViewById(R.id.titleProductList);
    TextView titleList2 = new TextView(this);
    titleList2.setText("Manufacturer");
    l1.addHeaderView(titleList2);
    l1.setAdapter(new EfficientAdapter(this));

(dit, android.R.layout.simple_list_item_1, sPro));     }

private static final String[] country = { "Iceland", "India", "Indonesia",
        "Iran", "Iraq", "Ireland", "Israel", "Italy", "Laos", "Latvia",
        "Lebanon", "Lesotho ", "Liberia", "Libya", "Lithuania",
        "Luxembourg" };

}

mijn lay-out voor listview

<?xml version="1.0" encoding="utf-8"?>
 





lay-out het lijstitem

<?xml version="1.0" encoding="utf-8"?>




Elk advies is welkom

0
Wanneer je titel zegt, bedoel je dan een tekstweergave bovenaan de lijstweergave die niet schuift met de inhoud van de lijstweergave?
toegevoegd de auteur dmon, de bron
nou ja, ... dat is wat ik wil. Ik dacht dat het toevoegen van een tekstweergave boven de lijstweergave, maar het werkte niet. addHeaderView Ik ben niet aan het werk gegaan zoals je kunt zien.
toegevoegd de auteur droidfish, de bron

2 antwoord

You could use the addHeaderView method described here

1
toegevoegd
eigenlijk deed ik wat je kunt zien, het is aan het einde
toegevoegd de auteur droidfish, de bron

Ik zie uw probleem, u geeft niet het kenmerk oriëntatie op van uw LinearLayout en de standaardinstelling is horizontaal. Dus de tekstweergave wordt toegevoegd aan de right van uw lijstweergave. De gemakkelijkste manier om een ​​titelweergave te maken, is om het kenmerk layout_weight te gebruiken. Dus, probeer dit:

  <!-- missing orientation-->
  

   <!-- weight attribute -->




0
toegevoegd
heel erg bedankt, ... dit komt goed uit.
toegevoegd de auteur droidfish, de bron