java - Android:如何使用 onClickListener 和 onLongClickListener 编写 AlertDialog

标签 java android onclicklistener android-alertdialog onlongclicklistener

正如标题所说。我已将 onClickListener 编码到我的 AlertDialog 中,但我不知道如何将 onLongClickListener 放在那里。

这是我的代码:

private void addRecipeMethod() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Title");
    adapter = new ArrayAdapter<>(getBaseContext(), android.R.layout.simple_list_item_1, getArrayList("ListOfRecipes"));
    builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            List<String> list = new ArrayList<>(getArrayList("ListOfRecipes"));
            getArrayListRecipes(list.get(which));
            List<String> listMain = new ArrayList<>(getArrayList("ListMain"));
            listMain.addAll(getArrayListRecipes(list.get(which)));
            saveList(listMain, "ListMain");

            adapter = new ArrayAdapter<>(getBaseContext(), android.R.layout.simple_list_item_1, getArrayList("ListMain"));
            listView.setAdapter(adapter);





            //Toast.makeText(getApplicationContext(), "you have clicked " + list.get(which) , Toast.LENGTH_SHORT).show();
        }
    });
    builder.show();
}
PS。单击菜单项时调用 void addRecipeMethod

最佳答案

使用这样的自定义布局创建AlertDialog

    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
    // ...Irrelevant code for customizing the buttons and title
    LayoutInflater inflater = this.getLayoutInflater();
    View dialogView = inflater.inflate(R.layout.alert_label_editor, null);
    dialogBuilder.setView(dialogView);


    Button button = (Button)dialogBuilder.findViewById(R.id.btnName);

    button.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View view) {

         //Commond here......

       }
   });

    button.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            // TODO Auto-generated method stub
            return false;
        }
    });

    AlertDialog alertDialog = dialogBuilder.create();
    alertDialog.show();

alert_label_editor xml中添加按钮并为该按钮添加setOnLongClickListener

    Button button = (Button)dialogBuilder.findViewById(R.id.btnName);

    button.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            // TODO Auto-generated method stub
            return false;
        }
    });

关于java - Android:如何使用 onClickListener 和 onLongClickListener 编写 AlertDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40109920/

相关文章:

android - 在 android 中的 ListView 内的按钮上设置 OnClick 监听器

android - ListView 项内的 subview 的 onclicklistener 仅在 onitemclicklistener 之后第二次触发

java - SOAP Web 服务 - 无法从 XSD 生成类

java - HTML 中 CSS 文件的绝对网络路径?

java - 在命令行上运行目标的所有绑定(bind)实例

java - Eclipse 找不到库类

jquery - 样式化 JQuery 移动主题

java - 如何使用 Onclick 更改按钮背景

java - 从 session 变量中删除特定变量

java - 如何通过给定的 ID 调用 View