【问题标题】:Display AlertDialog onLongClick长按时显示警报对话框
【发布时间】:2012-05-08 08:37:48
【问题描述】:

我有一个 listView 和一个 onClickListener,onClick 可以做一些事情并且它可以工作。现在我想在LongClick 上显示一个AlertDialog 但没有任何反应。我也在清单中的 ListView 中添加了android:longClickable="true",但仍然没有任何反应。

listView.setOnLongClickListener(new OnLongClickListener() {

    public boolean onLongClick(View v) {

        final CharSequence[] items = {"Revansch!", "Lägg till som vän","Ta bort spelet"};

        AlertDialog.Builder builder = new AlertDialog.Builder(ChallengeList.this);

        builder.setItems(items, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
                Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
            }
        });
        AlertDialog alert = builder.create();
        alert.show();
        return true;

    }

});

有人知道为什么它不起作用吗? 提前致谢!

【问题讨论】:

    标签: android dialog onclick android-alertdialog onlongclicklistener


    【解决方案1】:

    试试这个,

    listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> av, View v, int pos, final long id) {
    
           final CharSequence[] items = {"Revansch!", "Lägg till som vän","Ta bort spelet"};
           AlertDialog.Builder builder = new AlertDialog.Builder(ChallengeList.this);
           builder.setItems(items, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int item) {
                    Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
                }
            });
            AlertDialog alert = builder.create();
            alert.show();
    
            return true;
        }
    });
    

    【讨论】:

      【解决方案2】:

      我已经试过了。它的工作。

      myList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
              @Override
              public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) {
                  return onLongListItemClick(v,pos,id);
              }
              protected boolean onLongListItemClick(View v, final int pos, long id) {
      
                  // write code for AlertDialog
                  return true;
              }
      
          });
      

      您还需要重写 onItemLongClick 方法。

      【讨论】:

        猜你喜欢
        • 2020-04-12
        • 1970-01-01
        • 2023-03-13
        • 2020-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多