OncreateContextMenu никогда не называется Android .net против 2022Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 OncreateContextMenu никогда не называется Android .net против 2022

Сообщение Anonymous »

Я вижу некоторые сообщения о той же проблеме в 2013 году, но в 2025 году с Visual Studio 2022 Android.net
У меня такая же проблема < /p>
У меня есть список listview
У меня есть активность для него
У меня есть пользовательский адаптер для Listview
. to open the contexmenu and the OnCreateContextMenu is nevercalled in the ListView activity
Does ContexMenu android are suposed to work when Working with Android .NET (Visual studio)
Not Xamarin.Form nor MAUI Framework
Any help is welcome
Here are the Коды < /p>
Активность: < /p>
[Activity(Label = "OrderListActivity")]
public class ListOrderActivity : Activity
{

ListView LVOrders;
Button btnClose;

protected override void OnCreate(Bundle? savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.ListOrder);
// Create your application here

LVOrders = FindViewById(Resource.Id.ListViewOrders);

btnClose = FindViewById(Resource.Id.btnCloseListOrder);
btnClose.Click += btnClose_Click;

RegisterForContextMenu(LVOrders);

LVOrders.Adapter = new ListViewOrdersAdapter(this);

// Create your application here
}

public bool OnCreateContextMenu(IContextMenu menu, View v, IContextMenuContextMenuInfo menuInfo)
{
base.OnCreateContextMenu(menu, v, menuInfo);
MenuInflater.Inflate(Resource.Layout.CtxMenu, menu);
return true;
}
< /code>
listview < /p>








< /code>
contextmenu < /p>





< /code>
Адаптер < /p>
public class ListViewOrdersAdapter : BaseAdapter
{
Activity context;

public ListViewOrdersAdapter(Activity context)
: base()
{
this.context = context;
}
public override long GetItemId(int position)
{
return position;
}
public override OrderDto this[int position]
{
get { return KingsScanOrdersBiz.ListOrders[position]; }
}
public override int Count
{
get
{
if (KingsScanOrdersBiz.ListOrders == null) return 0;
return KingsScanOrdersBiz.ListOrders.Count;
}
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = KingsScanOrdersBiz.ListOrders[position];
View view = convertView;
if (view == null) // no view to re-use, create new
{
view = context.LayoutInflater.Inflate(Resource.Layout.OrderListRowView, null);
}
String code = item.ToString();

int A = Resource.String.btnClose;

TextView txtview = view.FindViewById(Resource.Id.OrderListRowView_OrderId);
TextView txtviewQty = view.FindViewById(Resource.Id.OrderListRowView_NbProdId);
txtviewQty.Text = $"{item.Items.Count} On : {item.CreatedDate:yyyy-MM-dd} Send : {GetDateFormat(item.DateSend)} ";

txtview.Text = code;
//txtview.Click += View_Click;
txtview.Tag = position;
LinearLayout txtParent = (LinearLayout)txtview.Parent;
if (!true)
{
txtParent.SetBackgroundColor(Color.Gray);
}
else
{
txtParent.SetBackgroundColor(new Color(168, 196, 37));
}
return view;
}

private object GetDateFormat(DateTime? dateSend)
{
if (!dateSend.HasValue)
{
return "";
}
return dateSend.Value.ToString("yyyy-MM-dd");
}

private void View_Click(object sender, EventArgs e)
{
int position = (int)((View)sender).Tag;
OrderDto current = this[position];
}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... et-vs-2022
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»