我在我的項目中設置了listfragment
。但似乎我的片段無法通過我的適配器正確完成。其原因是Context context
在MyListAdapter
。如果我點擊糾正它。它變爲MenuFragment menuFragment
。但是在更改之後,MyListAdapter
出現錯誤。所以我糾正它。它變爲Context context
。如果我糾正它,它仍然繼續下去。它的循環就是這樣。使用自定義適配器的ListFragment
注意:我想實現的是帶圖標的ListFragment。像我之前的其他問題(但不幸的是沒有人回答)。
public class MenuFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String [] proMenu ={ "Homies", "Best Nearby", "Coupon" , "Profile" , "History" , "", "Setting" ,
"About" , "Sign Out"};
setListAdapter(new MyListAdapter(this, proMenu));
}
@Override
public void onListItemClick(ListView lv, View v, int position, long id) {
Fragment newContent = null;
switch (position) {
case 0:
newContent = new ColorFragment();
break;
case 1:
Intent intent7 = new Intent();
intent7.setClass(getActivity(), Home.class);
intent7.putExtra("index", position);
startActivity(intent7);
break;
編輯:這是我的佈局。它現在完美無瑕。我只需要調整textview和線性佈局,這樣一個字就不會減半。但我面臨着另一個問題。它就像背景圖像堆疊起來一樣。這是我的佈局上的xml。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:cacheColorHint="#00000000"
android:background="@drawable/menu_drawer">
<ImageView
android:id="@+id/row_icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:padding="10dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/row_title"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:padding="10dp"
android:text="Medium Text"
android:textSize="20dp"
android:textAppearance="@android:style/TextAppearance.Medium" />
</LinearLayout>
如果我刪除此android:background="@drawable/menu_drawer"
從linear layout
。這將是完美的背景。沒有彼此堆放。但是當我在列表中滑動時,背景變得瘋狂,它消失了,並顯示出一些黑色背景。它像列表視圖android:cacheColorHint="#00000000"
的問題一樣。我已經在linear layout
中添加了cachecolor
。但它仍然顯示出那些黑色背景。就像這樣。
我知道什麼這個問題的。因爲默認背景是黑色的。但我不知道如何解決它。
編輯2:黑色問題解決。
已解決。
首先,你用'機器人:layout_height =「50dp」'該行高度,這是正常的,該文本將被削減,因爲它不能適合身高(尤其是當你使用一個20dp大小(用sp代替))。使用'wrap_content'作爲行高。其次,'cacheColorHint'屬性需要在ListView中使用,而不是行背景(可以在代碼中設置)。 – Luksprog 2013-04-11 08:29:56
謝謝。你爲我節省了很多。其實我有1個最後的問題。如何在歷史和環境之間創造空間。所以這3個列表將會出現在底部(設置,關於和退出)。 – Nicolas 2013-04-11 14:29:55
如果這是某種菜單,那麼最好用一個'LinearLayout'替換'ListView',它將包含這些行,這樣就可以像想要的那樣分開它們。您仍然可以通過計算屏幕所需的確切空間並添加具有該高度的額外空行來使用「ListView」。 – Luksprog 2013-04-11 14:46:22