【问题标题】:Is it possible to show context menu at position of item in listview?是否可以在列表视图中的项目位置显示上下文菜单?
【发布时间】:2015-09-30 14:46:19
【问题描述】:

我有一个列表视图。我想单击一个项目并在单击项目位置显示一个上下文菜单。目前,我正在使用下面的代码来显示上下文菜单并在单击该项目时执行一些操作。它运作良好,但上下文菜单位置是我屏幕中心的自动设置。我该如何解决?

public class ManageActivity extends Activity {
  private ListView mainListView ;
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_main);    
    // Find the ListView resource. 
    mainListView = (ListView) findViewById( R.id.mainListView );
    mainListView.setAdapter( listAdapter );     
    registerForContextMenu(mainListView);
 }
  @Override
  public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
      menu.add(0, v.getId(), 0, "Edit");
      menu.add(0, v.getId(), 0, "Delete");
  }
  @Override
  public boolean onContextItemSelected(MenuItem item){
     AdapterView.AdapterContextMenuInfo acm = (AdapterContextMenuInfo) item.getMenuInfo();
     String  audio_file_name = (String) mainListView.getItemAtPosition(acm.position);

     if(item.getTitle()=="Edit")
        Toast.makeText(getApplicationContext(), "Edit Clicked", Toast.LENGTH_LONG).show();
     if(item.getTitle()=="Delete")
          Toast.makeText(getApplicationContext(), "Delete Clicked", Toast.LENGTH_LONG).show();
    return true;
}

【问题讨论】:

  • 屏幕有多长?我想问“你确定吗?”
  • 我想在长按事件中做。
  • 那么我认为您在该特定视图上调用上下文菜单,而不是整个列表视图

标签: android listview android-listview android-contextmenu


【解决方案1】:

答案是肯定的。一个完美的例子是 Google Play 应用程序中的 gridview 项目。基本上,您可以在这里找到更多详细信息:

Android - Popup menu when list item view pressed?

【讨论】:

    【解决方案2】:

    ListView.setonItemLongClickListener(); 然后你将你的 popumenu 锚定到它

    【讨论】:

      猜你喜欢
      • 2016-03-05
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      • 2012-06-20
      • 1970-01-01
      相关资源
      最近更新 更多