如何在Android上实现弹出窗口?

时间:2011-12-23 20:02:45

标签: android popup

我见过一堆应用程序,其中按住ListView上的一个条目(长于一次点击)会产生一个弹出窗口。它通常列出要对条目执行的操作(编辑,删除等)。

这是内置于Android中的东西还是我必须自己构建的东西?

4 个答案:

答案 0 :(得分:2)

你可以创建一个Dialog(有很多关于Android对话框的文档,你可以从http://developer.android.com/guide/topics/ui/dialogs.html开始)。或者,你可以开始另一项活动,这对我来说似乎更适合Android,虽然它可能只是一种感觉。

答案 1 :(得分:1)

与之前的海报一样,您可以创建一个Dialog,并且您提到的长按可以使用setOnItemLongClickListener来实现。祝你好运!

(从longclick到itemlongclick的编辑听众)

答案 2 :(得分: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);
    }

答案 3 :(得分:1)

以上建议对我来说看起来不是最直接的方法。就像ListView有一个setOnItemSelectedListener一样,有一个等效的长期点击,名为setOnItemLongClickListener

如果您将此监听器与onContextItemSelected(如Noureddine AMRI所示)组合用于实际的上下文菜单,那么您将拥有所需的一切。实施例很普遍。