![](/img/trans.png)
[英]Listview Click Item Click Listener doesnt trigger in xamarin.android
[英]Xamarin Android Click Button in ListView And Get Item Position
我想在OnCreateView“片段”上單擊按鈕
第一類是HomeScreenAdapter:BaseAdapter
是一個簡單的Adapter重新運行視圖
HomeScreenAdapter
public class HomeScreenAdapter : BaseAdapter<Quotes>
{
List<Quotes> items;
Activity context;
public HomeScreenAdapter(Activity context, List<Quotes> items)
: base()
{
this.context = context;
this.items = items;
}
public override long GetItemId(int position)
{
return position;
}
public override Quotes this[int position]
{
get { return items[position]; }
}
public override int Count
{
get { return items.Count; }
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = items[position];
View view = convertView;
if (view == null) // no view to re-use, create new
view = context.LayoutInflater.Inflate(Resource.Layout.Quotes, null);
view.FindViewById<TextView>(Resource.Id.Quotes).Text = item.s_Quotes;
view.FindViewById<TextView>(Resource.Id.From).Text = item.s_From;
view.FindViewById<TextView>(Resource.Id.Category).Text = item.Category;
return view;
}
}
分段
class CrimeFragments : Fragment
{
ListView Lv;
List<Quotes> tableItems = new List<Quotes>();
static Quotes quotes;
ClipboardManager Cbm;
ClipData Cd;
ImageView imageView;
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.Inflate(Resource.Layout.crimelayout, container, false);
Lv = rootView.FindViewById<ListView>(Resource.Id.crimeListView);
Lv.VerticalScrollBarEnabled = false;
Lv.Adapter = new HomeScreenAdapter(this.Activity, tableItems);
Lv.ItemClick += Lv_ItemClick;
return rootView;
}
private void Lv_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{
var t = tableItems[e.Position];
string cpy = t.s_Quotes + " - " + t.s_From;
Cbm = (ClipboardManager)Context.GetSystemService(Context.ClipboardService);
Cd = ClipData.NewPlainText("text", cpy);
Cbm.PrimaryClip = Cd;
Toast.MakeText(this.Activity, "Text Copied", ToastLength.Short).Show();
}
}
我要使此按鈕單擊而不是Lv.ItemClick
我想讓Thies按鈕獨立於Listview
任何人都可以幫助我嗎?
嗨,開發人員,我發現了一個適合我的解決方案:
如果您有Adapter類, 請將GetView Function更改為此:
public override View GetView(int position, View convertView, ViewGroup parent) { var item = items[position]; View view = convertView; if (view == null) { // no view to re-use, create new view = context.LayoutInflater.Inflate(Resource.Layout.Quotes, null); } view.FindViewById<TextView>(Resource.Id.Quotes).Text = item.s_Quotes; view.FindViewById<TextView>(Resource.Id.From).Text = item.s_From; view.FindViewById<TextView>(Resource.Id.Category).Text = item.Category; Button btnCopy = view.FindViewById<Button>(Resource.Id.btnCopy); btnCopy.Click += delegate { Toast.MakeText(this.context, items[position].s_From, ToastLength.Short).Show(); }; return view; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.