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

Android: How to code an AlertDialog with onClickListener and 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;
        }
    });