ListFragment mit Custom Adapter
Ich habe setup eine listfragment
in meinem Projekt. aber es scheint, mein fragment cant get es mit meinem richtigen adapter. es ist, weil der Context context
im MyListAdapter
. wenn ich klicken Sie auf, um es zu korrigieren. es ändert in MenuFragment menuFragment
. Aber nach, dass die änderungen, die MyListAdapter
bekam Fehler. damit ich es korrigieren. es ändert in Context context
. und wenn ich nochmal korrigieren, Ihr geht immer noch auf und auf. seine looping so.
Hinweis: Was ich erreichen möchte ist ListFragment mit Symbol. wie meine andere Frage vor (die aber leider niemand beantworten).
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;
EDIT : Dies ist mein layout. das ist völlig in Ordnung. ich muss nur zwicken Sie den textview und linearen Aufbau, so dass das Wort nicht in der Hälfte geschnitten. aber ich bin vor ein weiteres problem. es ist wie das Bild im hintergrund Türmen sich gegenseitig. dies ist die xml auf meinem layout.
<?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>
Und wenn ich zu entfernen dieses android:background="@drawable/menu_drawer"
von der linear layout
. es wird der perfekte hintergrund. nicht stapeln sich gegenseitig. aber wenn ich swiping in der Liste, die im hintergrund die Nüsse gehen, ist Sie Weg und es zeigt einen schwarzen hintergrund. es ist wie das problem mit listview -android:cacheColorHint="#00000000"
. ich schon Hinzugefügt, dass cachecolor
im linear layout
. aber seine noch mit diesen schwarzen hintergrund. es ist wie dieser.
ich wissen, was das problem werden. seine weil die Standard-hintergrund ist schwarz. aber ich weiß nicht, wie es zu lösen.
EDIT2 : Black Problem Gelöst.
GELÖST.
android:layout_height="50dp"
für die Zeilenhöhe daher ist es normal, dass der text abgeschnitten werden, wie es kann nicht passen, die Höhe(vor allem als Sie ein 20dp Größe(verwenden Sie sp statt)). Verwenden wrap_content
für die Zeilenhöhe. Zweitens, die cacheColorHint
- Attribut verwendet werden muss auf die ListView
und nicht die Zeile hintergrund(man kann es im code).danke. Sie ersparte mir eine Menge. eigentlich habe ich 1 Letzte Frage. wie, um Platz zu schaffen zwischen Geschichte und Einstellung. also die 3-Liste werden in der unteren (Einstellung über & sign out).
Wenn, dass ist eine Art Menü, dann sind Sie besser dran, durch den Austausch der
ListView
mit einem LinearLayout
enthalten wird, die Zeilen, so konnte Sie breitete Sie auseinander, wie Sie wollen. Sie konnte noch immer tun Sie es mit der ListView
durch die Berechnung der genauen Speicherplatz benötigt, für den Bildschirm und das hinzufügen eine zusätzliche leere Zeile mit dieser Höhe.danke. ich aktualisierte die Frage 😀 eigentlich ist es das Menü. slidemenu von jfeinstein10
Ich sagte, legen Sie eine einzelne leere Zeile für die Sie die Berechnung der richtigen Höhe ist. Sie sollten wirklich anfangen, eine neue Frage zu diesem.
InformationsquelleAutor Nicolas | 2013-04-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie sich nicht über eine gültige
Context
zu Netzteil, einFragment
nicht eineContext
. Sie verwenden müssen , zum Beispiel, eineActivity
alsContext
:Ich hoffe, Sie auch umsetzen
getCount()
Methode in den adapter, sonst werden Sie nicht sehen, nichts in derListView
egal wie viele Elemente Sie haben.Der text ist abgeschnitten, an der Unterseite? Können Sie Ihre layout-Datei?
ich bearbeitete die Frage "hinzufügen, das layout". Dank
InformationsquelleAutor Luksprog
InformationsquelleAutor Vinod Joshi
Während Sie die Erstellung Ihrer Benutzerdefinierten Adapter-don ' T pass "Context" - Objekt als Referenz übergeben Sie einfach die Activity-Objekt, um die Custom-Adaper.
InformationsquelleAutor Vinod Joshi