2016-08-23 6 views

答えて

1

この質問には多くの回答がありましたが、私が見つけたのは古いAPIです。これが私のやり方です。

ListView.ItemClickイベントを使用してこれを実行し、図のようにメニューを表示できます。

この情報のほとんど

[Activity(Label = "Employee Management", Theme = "@android:style/Theme.Material")] 
public class EmpMgmtActivity : Activity 
{ 
    ListView empListView; 

    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 
     SetContentView(Resource.Layout.EmpMgmtLayout); 

     empListView = FindViewById<ListView>(Resource.Id.EmpMgmtList); 

     GenerateEmpList(EmployeeStorage.employeeList); 

     empListView.ItemClick += EmpListView_ItemClick; 
    } 

    private void EmpListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e) 
    { 
     var menu = new PopupMenu(this, empListView.GetChildAt(e.Position)); 
     menu.Inflate(Resource.Layout.popup_menu); 
     menu.MenuItemClick += (s, a) => 
     { 
      switch (a.Item.ItemId) 
      { 
       case Resource.Id.pop_button1: 
        // update stuff 
        break; 
       case Resource.Id.pop_button2: 
        // delete stuff 
        break; 
      } 
     }; 
     menu.Show(); 
    } 

Menu Example

を見つけるのは非常に簡単です(名前は削除)、一部は私が右にそれをポップアップを持ってするのではなく、ポップアップするイマイチとのトラブルメニューを取得していましたラインアイテム。私にとって重要なのは、リストから個々のビューをルックアップすることでした。あなたも引数にしてい (ビュー)送信者 を使用する場合は

var menu = new PopupMenu(this, empListView.GetChildAt(e.Position)); 

は、それは理想的ではないページの上部付近にメニューを配置します。

リストビューの実際のビューを返すListView.GetChildAtポップアップメニューの

XMLコード:

<?xml version="1.0" encoding="utf-8" ?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item android:id="@+id/pop_button1" android:title="Edit Employee" showAsAction="always" /> 
<item android:id="@+id/pop_button2" android:title="Delete Employee" showAsAction="always" /> 
</menu> 

・ホープ、このことができます!

関連する問題