2011-03-25 34 views
0

我已經做了我的自定義的ListView中,XML是以下幾點:Android如何在我的自定義ListView上添加一些浮動按鈕?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> 
    <ListView android:id="@+id/list" android:layout_width="1px" android:layout_height="1px" android:layout_weight="1"></ListView> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> 
     <ImageView android:id="@+id/img" android:layout_width="26px" android:layout_height="30px" /> 
     <TextView android:id="@+id/title" android:layout_width="248dp" android:layout_height="wrap_content" android:textStyle="bold" android:paddingLeft="6dp" android:textSize="20sp" /> 
     <ImageButton android:id="@+id/cat_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:layout_marginRight="2dp" /> 
     <ImageButton android:id="@+id/act_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" /> 
    </LinearLayout> 
</LinearLayout> 

' 和代碼是

public class MyListActivity extends ListActivity 
{ 
    protected void onCreate(Bundle savedInstanceState) 
    { 
    Log.i("MyApp", "ON List create......"); 
    super.onCreate(savedInstanceState); 
    List<BeanObj> list=...//Do something to fill list 
    setListAdapter(new MyListViewAdapter(context, R.layout.item_view, list)); 
    } 

    public class MyListViewAdapter extends ArrayAdapter<List<BeanObj>> 
    { 
    private List<BeanObj> hList=null; 
    public MyListViewAdapter(Context context, int textViewResourceId, List hList) 
    { 
     super(context, textViewResourceId, hList); 
     this.hList=hList; 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) 
    { 
     final BeanObj bean=this.hList.get(position); 
     LayoutInflater inflater=getLayoutInflater(); 
     View row=inflater.inflate(R.layout.item_view, parent, false); 
     // Do something to fill ListView 
     return row; 
    } 
    } 
} 

我也嘗試添加按鈕就可以了,但我得到了每個每個按鈕一排列表視圖...

我可以在xml上做些什麼來在我的自定義列表視圖上添加浮動按鈕? 或者,我caeate低於另一個XML佈局文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="left|top"> 
    <Button android:id="@+id/btnLogout" android:layout_width="wrap_content" android:layout_height="40dp" android:text="@string/buttonLogout" /> 
    <View android:layout_width="75dp" android:layout_height="40dp" /> 
    <Button android:id="@+id/btnList" android:layout_width="wrap_content" android:layout_height="40dp" android:text="@string/buttonList" /> 
    <Button android:id="@+id/btnSearch" android:layout_width="wrap_content" android:layout_height="40dp" android:text="@string/buttonSearch" /> 
</LinearLayout> 

我怎麼通過addHeaderView或addFooterView方法使用它呢?

回答

0

在爲列表設置ListAdapter之前,需要添加頁眉和頁腳。從docs

注意:在調用 setAdapter之前調用此函數。這是因爲ListView可以用 包裝提供的光標, 也將包含標題和 頁腳視圖。

同時在getView方法中膨脹您的視圖並不是最優化的方式。您需要使用靜態類來存儲對虛擬視圖的引用。查看this通話正確設置的意見。

相關問題