2011-12-23 55 views
0

我见过一堆应用程序,在ListView上按住一个条目(比点击更长)会产生一个弹出窗口。它通常列出了对条目采取的操作(编辑,删除等)。如何在Android上实现弹出窗口?

这是内置于Android的东西或我必须建立自己的东西?

+0

只是为了澄清,你的意思是[这个UI模式](http://www.androidpatterns.com/uap_pattern/quick-actions)? – 2011-12-23 20:13:24

+0

@alextsc我不需要它那么花哨,但是,这足够接近。 – AngryHacker 2011-12-23 20:59:49

回答

1

就像之前的海报说的那样,你可以创建一个对话框,并且你提到的长按可以使用setOnItemLongClickListener实现。祝你好运!

(编辑从longclick听者到itemlongclick)

1

保持的条目的位长将触发上下文菜单。

使用此在的onCreate:

registerForContextMenu(getListView()); 

然后覆盖:

@Override 
    public boolean onContextItemSelected(MenuItem item) { 
     AdapterContextMenuInfo info = (AdapterContextMenuInfo) item 
       .getMenuInfo(); 
     int idcompte = mComptes.get(info.position).getId(); 

     switch (item.getItemId()) { 
      case DELETE_ID: 
       DBhelper dBhelper = new DBhelper(this); 
       dBhelper.open(); 
       dBhelper.deleteCompte(idcompte); 
       dBhelper.close(); 
       onResume(); 
       return true; 

      case EDIT_ID: 

       Intent intent = new Intent(this, AddorupdateCompteActivity.class); 
       intent.putExtra(AddorupdateCompteActivity.ID, idcompte); 
       startActivity(intent); 

       return true; 
     } 
     return super.onContextItemSelected(item); 
    } 
1

上述建议不喜欢看的最直接的方法给我。就像一个ListView有一个setOnItemSelectedListener一样,有一个等效的长点击,称为setOnItemLongClickListener

如果您将此听众与onContextItemSelected(如Noureddine AMRI所示)结合起来用于您的实际上下文菜单,则您已获得所需的一切。实现示例非常普遍。