1
public override Java.Lang.Object InstantiateItem (ViewGroup container, int position) 
{ 
    View view = LayoutInflater.From (container.Context).Inflate (Resource.Layout.pager_item, container, false); 
    container.AddView (view); 
    navlistArray = new List<jtaskItem>(); 
    string apiUrl = MainActivity.GetData("http://"+MainActivity.IPAddress+"/api/jtasks/GetItemList?uName=admin&tgId=1"); 
    JSONArray obj = new JSONArray(apiUrl); 
    //JSONObject obj = new JSONObject(apiUrl); 
    for (int i = 0; i < obj.Length(); i++) 
    { 
     JSONObject e = obj.GetJSONObject(i); 
     navlistArray.Add(new jtaskItem() { ID = e.GetString("ID"), Title = e.GetString("Title"), DueDate = e.GetString("DueDate")}); 
     //navlistArray.Add(e.GetString("Title")); 

    } 

    //loading listview 
    //TextView txtTitle = view.FindViewById<TextView> (Resource.Id.item_title); 
    listView = view.FindViewById <ListView> (Resource.Id.list); 
    MyListAdapter adapter = new MyListAdapter(container.Context, navlistArray); 
    //ArrayAdapter adapter = new ArrayAdapter<string>(container.Context, Resource.Layout.pager_item, Resource.Id.item_title, navlistArray); 
    listView.Adapter = adapter; 
    listView.ItemClick += listView_ItemClick; 


    return view; 
} 

void listView_ItemClick(object sender, AdapterView.ItemClickEventArgs e) 
{ 

    Console.Write(navlistArray[e.Position].ID); 
} 

這裏是我的代碼請幫忙,當我點擊lisview Itemclick函數不是調用請告訴我我在哪裏做錯誤。Listview Itemclick event not firing android xamarin

public class MyListAdapter:BaseAdapter<jtaskItem>{ 

    public List<jtaskItem> mItems; 
    public Context mContext;  

    public MyListAdapter(Context context, List<jtaskItem> items) 
    { 
     mItems = items; 
     mContext = context;    
    } 

    public override int Count 
    { 
     get { return mItems.Count; } 
    } 

    public override long GetItemId(int position) 
    { 
     return position; 
    } 

    public override jtaskItem this[int position]  { 

     get { return mItems[position]; } 
    } 

    public override View GetView(int position, View convertView, ViewGroup parent) 
    { 
     View row=convertView; 
     if (row == null) 
     { 
      row=LayoutInflater.From(mContext).Inflate(Resource.Layout.List_Item, null,false);     
     } 

     TextView taskTitle=row.FindViewById<TextView>Resource.Id.TaskTitle); 
     taskTitle.Text = mItems[position].Title; 
     TextView dueOn = row.FindViewById<TextView>(Resource.Id.DueOn); 
     dueOn.Text = mItems[position].DueDate; 
     TextView id = row.FindViewById<TextView>(Resource.Id.ID); 
     id.Text = mItems[position].ID; 
     CheckBox mycheckBox=row.FindViewById<CheckBox>Resource.Id.checkBox); 
     mycheckBox.Checked = true; 

     return row; 
    } 
} 
+0

可能是一些在佈局文件從列表視圖... – Milen

+0

它當我使用發射「竊取」的重點arrayAdapter但MylistAdapter不起作用 –

回答

1

適配器必須從BaseAdapter<T>ArrayAdapter<T>繼承。

public class MyListAdapter : BaseAdapter<jtaskItem> { /* ... */ } 

參見:https://developer.xamarin.com/guides/android/user_interface/working_with_listviews_and_adapters/part_2_-_populating_a_listview_with_data/#Implementing_a_ListAdapter

+0

是我使用過像這樣的公共類MyListAdapter:BaseAdapter {} only。 –

+0

這應該工作。你可以顯示你的'MyListAdapter'實現(添加到你的問題)。 –

+0

nope :)它是stackoverflow和其他人想從你的錯誤中學習,如果他們有同樣的問題。如果它包含非公開內容,請用最少的實現替換它。所以只需編輯你的問題。也許我沒有答案。所以沒有人可以回答你是否把它寄給我。 –

0

的問題是,Android不允許您選擇那些對他們說,是可聚焦元素的列表項。

修改的列表項的複選框,有像這樣的屬性:

android:focusable="false"