2016-10-19 8 views
1

カスタムリストビュー(フラグメントからカスタムリストビューアダプタを呼び出す方法)

カスタムリストビューアダプタを呼び出して、リストを表示する方法(フラグメントからカスタムリストビューアダプタを呼び出す方法)。

私はHome.csから1つのカスタムリストビューアダプタ(リスト断片)を呼び出し、Home.axml

でそれを表示する必要がある「Home.axml」とHome.cs(リストフラグメント)

を持っています

は私のコードです。

断片

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

上記のコードを使用していますものです、それは私のために正常に動作しています。しかし、どのようにフラグメントから呼び出すことができるコスチュームリストビューアダプタを作成するには?

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

こちらを参照してください。http://stackoverflow.com/questions/8166497/custom-adapter-for-list-view – pnavk

+0

私は同意したが、それもありますカスタムリストビューアダプタを、フラグメントからではなくアクティビティから呼び出すためには、フラグメントから呼び出す必要があります。 – Pravee

+0

アクティビティですべてのロジックと「作業」が行われているアクティビティ/フラグメント関係のアイデアはありませんか?あなたのフラグメントが親アクティビティのメソッドを呼び出すことはできません: '((MyActivity)Activity).MyMethod();' – jaymarvels

答えて

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; 
     } 
関連する問題