2016-10-19 5 views
1

(Wie benutzerdefinierte Listenansicht Adapter von Fragment nennen)Benutzerdefinierte Listenansicht im Fragment Xamarin (Wie benutzerdefinierte Listenansicht Adapter von Fragment nennen)

eine Möglichkeit, eine benutzerdefinierte Liste Ansicht Adapter aufrufen und die Liste zeigen.

Ich habe "Home.axml" und Home.cs (List-Fragment)

Ich brauche eine benutzerdefinierte Liste Ansicht Adapter aus der Home.cs (List-Fragmente) nennen und zeigt sie in Home.axml

unten ist mein Code.

Fragment

namespace AndroidApp2.Fragments 
{ 
    public class Home : ListFragment 
    { 
     public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
      { 
     var adapter = new ArrayAdapter<String>(Activity, Android.Resource.Layout.SimpleListItemChecked, allheading); 
     ListAdapter = adapter; 
     return base.OnCreateView(inflater, container, savedInstanceState); 
      }  
    } 
} 

Der obige Code ist, was mit ist, es funktioniert gut für mich. Aber wie erstellt man einen Costume List View Adapter, der aus Fragmenten aufrufen kann?

Home.axml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:minWidth="25px" 
    android:minHeight="25px"> 
    <fragment 
     android:id="@+id/heading_fragment" 
     android:layout_weight="1" 
     android:layout_width="0px" 
     android:layout_height="match_parent" /> 
    <FrameLayout 
     android:id="@+id/details" 
     android:layout_weight="1" 
     android:layout_width="0px" 
     android:layout_height="match_parent" /> 
</LinearLayout> 
+1

siehe hier: http://stackoverflow.com/questions/8166497/custom-adapter-for-list-view – pnavk

+0

Ich stimmte zu, aber das ist auch Wenn ich den benutzerdefinierten Listenansichtsadapter von einer Aktivität, die nicht aus einem Fragment stammt, aufrufen muss, muss ich ihn aus dem Fragment aufrufen. – Pravee

+0

Ist nicht die Idee der Aktivität/Fragment-Beziehung, wo die ganze Logik und "Arbeit" auf der Aktivität durchgeführt wird? Kann Ihr Fragment keine Methode für die Elternaktivität aufrufen: '((MyActivity) Activity) .MyMethod();' – jaymarvels

Antwort

1
Take a look on this code. I manged to call it from fragment, i only had to set the context properly otherwise i got this error "Window.getLayoutInflater()' on a null object reference". 



     public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
     { 
      base.OnCreate(savedInstanceState); 

      var view = inflater.Inflate(Resource.Layout.TagDialog, container, false); 
      Button confirmBtn = view.FindViewById<Button>(Resource.Id.ConfirmBtn); 
      Button cancelBtn = view.FindViewById<Button>(Resource.Id.CancelBtn); 

      AbsenceService service = new AbsenceService(); 
      ListViewTags = view.FindViewById<ListView>(Resource.Id.TagListView); 
      TagItems = service.GetTags(1); 
      ListViewTags.Adapter = new Cards_TagListAdapter(context, TagItems); 

      // "Cancel" click 
      cancelBtn.Click += delegate { 
       Dismiss(); 
      }; 

      confirmBtn.Click += ConfirmBtn_Click; 
      return view; 
     } 
Verwandte Themen