2011-12-06 34 views
0

我想添加一個標題的自定義列表視圖從列表中刪除。我發現了一些提示,但可以解決我的問題。因此,也許這裏有人能給出一個線索:對標題的自定義列表視圖的建議

我的課(包括兩個類)

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<String> 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)); 

(這一點,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" }; 

} 

我的列表視圖

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 
<ListView 
    android:id="@+id/ListView01" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

<TextView 
    android:id="@+id/titleProductList" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Title" /> 
</LinearLayout> 

佈局列表項目佈局

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="left|center" 
android:paddingBottom="5px" 
android:paddingLeft="5px" 
android:paddingTop="5px" > 
<TextView 
    android:id="@+id/listitemdef" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="hi" 
    android:textColor="#FFFF00" > 
</TextView> 
</LinearLayout> 

任何意見是值得歡迎的

+2

當你說標題,你的意思是在listview的頂部的textview不滾動的listview的內容? – dmon

+0

好的,...那就是我想要的。我想只是在列表視圖上添加一個textview,但它沒有工作。 addHeaderView我沒有工作,因爲你可以看到。 – droidfish

回答

0

我看到你的問題,你沒有指定你的LinearLayout的orientation屬性,並且默認是水平的。所以textview被添加到您的列表視圖的權利。另外,創建標題視圖的最簡單方法是使用layout_weight屬性。所以,試試這個:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > <!-- missing orientation--> 
    <TextView 
    android:id="@+id/titleProductList" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Title" /> 

    <ListView 
    android:id="@+id/ListView01" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" > <!-- weight attribute --> 
</ListView> 


</LinearLayout> 
+0

非常感謝,......這個結果。 – droidfish

1

你可以使用addHeaderView方法描述here

+0

其實我也照你所看到的那樣,它在結尾 – droidfish