简体   繁体   English

如何在Android的警报对话框中使用按钮单击功能?

[英]How to use Button click function on Alert Dialog in android?

I am building an Android application where on click of a button an Alert dialog opens which has a spinner and a button. 我正在构建一个Android应用程序,在该应用程序上单击一个按钮,即会打开一个包含微调器和一个按钮的“警报”对话框。

How can I implement onClick function on button that shown in Alert Dialog Box? 如何在警报对话框中显示的按钮上实现onClick功能?

Here is my code of Alert Dialog: 这是我的“警报对话框”代码:

private void viewCategory() {

    AlertDialog.Builder viewDialog = new AlertDialog.Builder(getActivity());

    viewDialog.setTitle("Host Your Game");

    LayoutInflater li = (LayoutInflater)   
    getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View dialogView = li.inflate(R.layout.customealertdialogbox, null);
    viewDialog.setView(dialogView);

    viewDialog.setPositiveButton("Ok",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                }
            });

    viewDialog.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                }
            });
    viewDialog.show();



    Spinner spinnercategory = (Spinner) dialogView
            .findViewById(R.id.spinner1);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            getActivity(), R.array.SportSelection, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnercategory.setAdapter(adapter);

    Spinner spinnercategory2 = (Spinner) dialogView
            .findViewById(R.id.spinner2);
    ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(
            getActivity(), R.array.time, android.R.layout.simple_spinner_item);
    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnercategory2.setAdapter(adapter2);

    Spinner spinnercategory3 = (Spinner) dialogView
            .findViewById(R.id.spinner3);

    ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource(
            getActivity(), R.array.Noofplayer, android.R.layout.simple_spinner_item);
    adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnercategory3.setAdapter(adapter3);

    Spinner spinnercategory4 = (Spinner) dialogView
            .findViewById(R.id.spinner4);       
    ArrayAdapter<CharSequence> adapter4 = ArrayAdapter.createFromResource(
            getActivity(), R.array.requirement, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnercategory4.setAdapter(adapter4);

    spinnercategory.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> parent, View arg1,
                int arg2, long arg3) {
            String selItem = parent.getSelectedItem().toString();
            Toast.makeText(getActivity(), selItem,
                       Toast.LENGTH_LONG).show();
        }

        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
        }
    });

Here is Xml code of this layout - 这是此布局的Xml代码-

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
   android:layout_height="match_parent"
  android:orientation="vertical"
   >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Select Your Sport :"
    android:layout_marginLeft="11sp"
    android:layout_marginTop="5sp"
    android:textSize="20sp"
    />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />

  <Spinner
     android:id="@+id/spinner1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_gravity="center"
      />

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sport Date :"
    android:layout_marginLeft="11sp"

    android:textSize="20sp"
    />

  <DatePicker
      android:id="@+id/datePicker1"
      android:calendarViewShown="false"
      android:layout_width="match_parent"
      android:layout_height="150sp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Select Your Time_Slot :"
    android:layout_marginLeft="11sp"

    android:textSize="20sp"
    />

     <Spinner
         android:id="@+id/spinner2"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />

      <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Max. No. Player in Sport :"
    android:layout_marginLeft="11sp"     
    android:textSize="20sp"
    />

     <Spinner
         android:id="@+id/spinner3"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />

      <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Min. No. Player in Sport :"
    android:layout_marginLeft="11sp"       
    android:textSize="20sp"
    />

      <Spinner
          android:id="@+id/spinner4"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" />

  </LinearLayout>

after these line... 在这些线之后...

View dialogView = li.inflate(R.layout.customealertdialogbox, null);
viewDialog.setView(dialogView);

add.... 加....

final Button button1=(Button)dialogView.findViewById(R.id.button1);//button1 is your button-id

and then use this object ...and do whatever you like to 然后使用这个对象...并做任何你想做的

            button1.setOnClickListener(new OnClickListener() 
            {
                @Override
                public void onClick(View v) 
                {
                    //your logic
                }
            });

Frist you have to initialize button and set click listener before shown alert dialog : 首先,您必须在显示警报对话框之前初始化按钮并设置Click侦听器:

final Button button1 = (Button) dialogView.findViewById(R.id.button1);

button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
       Toast.makeText(context, "button1 click",Toast.LENGTH_LONG).show();
    }
});

Formmated code : 验证码:

   private void viewCategory(final Context context) {

        AlertDialog.Builder viewDialog = new AlertDialog.Builder(context);
        viewDialog.setTitle("Host Your Game");

        View dialogView = LayoutInflater.from(context).inflate(R.layout.customealertdialogbox, null);
        viewDialog.setView(dialogView);
        final Spinner spinnercategory = (Spinner) dialogView.findViewById(R.id.spinner1);
        final Spinner spinnercategory2 = (Spinner) dialogView.findViewById(R.id.spinner2);
        final Spinner spinnercategory3 = (Spinner) dialogView.findViewById(R.id.spinner3);
        final Spinner spinnercategory4 = (Spinner) dialogView.findViewById(R.id.spinner4);
        final Button button1 = (Button) dialogView.findViewById(R.id.button1);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(context, R.array.SportSelection, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnercategory.setAdapter(adapter);


        ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(context, R.array.time, android.R.layout.simple_spinner_item);
        adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnercategory2.setAdapter(adapter2);


        ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource(context, R.array.Noofplayer, android.R.layout.simple_spinner_item);
        adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnercategory3.setAdapter(adapter3);


        ArrayAdapter<CharSequence> adapter4 = ArrayAdapter.createFromResource(context, R.array.requirement, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnercategory4.setAdapter(adapter4);

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, "button1 click",Toast.LENGTH_LONG).show();
            }
        });

        spinnercategory.setOnItemSelectedListener(new OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> parent, View arg1,int arg2, long arg3) {
                Toast.makeText(context, spinnercategory.getSelectedItem().toString(),Toast.LENGTH_LONG).show();
            }

            public void onNothingSelected(AdapterView<?> arg0) {
            }
        });
        viewDialog.show();
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在Android中单击警报对话框的按钮时启动进度对话框? - How to start progress dialog on button click of alert dialog in android? 如果某事警报对话框上的按钮单击问题android - if something Alert Dialog on button click issue android android-警报对话框,如果不单击按钮,用户将无法通过 - android - alert dialog that user can't pass without click on the button 单击按钮后无法显示警报对话框 - Can't display alert dialog on button click Android ok按钮单击Android上的警报对话框后,应用程序崩溃 - App crashes after ok button click on alert dialog on android 警报对话框中的问题在肯定按钮验证中保持打开状态,在android中单击 - issue in alert dialog remain open in Positive button validation click in android android-如果您单击警报对话框多选项目的取消按钮,如何显示以前的状态 - android - How to display the previous status if you click on the cancel button of alert dialog multi choice items 单击按钮后如何使警报对话框从按钮指向? - How make alert dialog pointing from a button on click of button? 如何在Handler和RunOnUiThread中使用警报对话框 - How to use alert dialog in Handler and runOnUiThread in android 如何在警报对话框中使用电话号码? - How to use phone number in alert dialog android?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM