首页 > 其他分享 >Android 多个选项的弹出框的简单实现

Android 多个选项的弹出框的简单实现

时间:2023-10-10 16:25:46浏览次数:28  
标签:选项 dialog1 LayoutParams 出框 DialogInterface 按钮 new Android LinearLayout

在布局页面添加一个fab按钮(fab_user_Add),可以简单的Button按钮就可以

  <cc.trity.floatingactionbutton.FloatingActionButton
            android:id="@+id/fab_user_add"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:layout_gravity="right"
            android:layout_marginRight="2dp"
            android:src="@drawable/ic_add"
            android:backgroundTint="#4b98fb"
            app:rippleColor="#9CC4F7"
            app:borderWidth="0dp"
            android:clickable="true"
            android:layout_marginBottom="20dp" />

在Activity的调用方法

 FloatingActionButton fabUserAdd = findViewById(R.id.fab_user_add);
        fabUserAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog dialog1 = new AlertDialog.Builder(CollectActivity.this)
                        .setTitle("选择兴趣爱好")
                        //正极按钮
                        .setPositiveButton("读书", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Log.i("兴趣爱好","点击【游泳】");
                            }
                        })
                        //负极按钮
                        .setNegativeButton("游泳", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Log.i("兴趣爱好","点击【游泳】");
                            }
                        })
                        //空档按钮
                        .setNeutralButton("运动", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Log.i("兴趣爱好","点击【运动】");
                            }
                        })
                        .create();
                dialog1.show();      
            }
        });

效果图

 如果需要弹窗选择按钮对齐,在dialog1.show()后面添加如下代码

                //按钮位置调整
                Button mNegativeButton = dialog1.getButton(AlertDialog.BUTTON_NEGATIVE);
                Button mPositiveButton = dialog1.getButton(AlertDialog.BUTTON_POSITIVE);
                Button mNeutralButton = dialog1.getButton(AlertDialog.BUTTON_NEUTRAL);

                LinearLayout.LayoutParams positiveButtonLL = (LinearLayout.LayoutParams) mPositiveButton.getLayoutParams();
                positiveButtonLL.weight = 1;
                mPositiveButton.setLayoutParams(positiveButtonLL);
                LinearLayout.LayoutParams mNegativeButtonLL = (LinearLayout.LayoutParams) mNegativeButton.getLayoutParams();
                mNegativeButtonLL.weight = 1;
                mNegativeButton.setLayoutParams(mNegativeButtonLL);
                LinearLayout.LayoutParams mNeutralButtonLL = (LinearLayout.LayoutParams) mNeutralButton.getLayoutParams();
                mNeutralButtonLL.weight = 1;
                mNeutralButton.setLayoutParams(mNeutralButtonLL);

调整后效果图

 

标签:选项,dialog1,LayoutParams,出框,DialogInterface,按钮,new,Android,LinearLayout
From: https://www.cnblogs.com/xielong/p/17754973.html

相关文章

  • Flutter module集成到Android原生项目报错
    使用AAR方案集成遇到两个诡异错误环境:Flutter(Channelstable,3.3.10,onmacOS13.5.222G91darwin-x64,localezh-Hans-CN)AndroidStudio(version2022.3)Androidtoolchain-developforAndroiddevices(AndroidSDKversion34.0.0)参考文档en参考文档zh......
  • Android Studio可以编译但Flutter提示无法定位java runtime
    AndroidStudio可以编译但Flutter提示无法定位javaruntime下面我们重点讲一下“UnabletofindbundledJavaversion”报错问题到AndroidStudio安装目录下注意:有些AndroidStudio可能是“jbr”文件,不用管jbr文件,直接复制一份jbr文件在同一路经,再把复制的文件改名为“jre”文......
  • Android设置spinner字体
    弹出下拉菜单可以直接设置,但是显示字体需要使用自定义适配器来生效你尝试在Spinner上应用了自定义的样式,但似乎字体大小未更改。在Spinner控件中更改字体大小可能需要使用自定义适配器来生效。尽管你在样式setting_spinner中设置了android:textSize,但这只会影响下拉列表中......
  • app直播源代码,android中几种常用的弹框
    app直播源代码,android中几种常用的弹框一、SweetAlertDialog弹框使用该控件需要添加依赖: implementation'com.github.f0ris.sweetalert:library:1.5.1'​下面是具体用法:  newSweetAlertDialog(this,SweetAlertDialog.WARNING_TYPE)        .setTitl......
  • Android Activity的玩法
    TODO基本的使用IntentTODO基础的使用方法Intent传输数据//添加Intentintent=newIntent(activity,TargetActivity.class);intent.putExtra(Stringname,Objectdata);startActivity(intent)//使用intent=getIntent()intent.getExtra(Stringkey).var;Acti......
  • MPAndroidChart 中的HorizontalBarChart数值显示不全问题
    privateHorizontalBarCharthor_bar_chart;hor_bar_chart=(HorizontalBarChart)findViewById(R.id.hor_barchart);YAxisleftYAxis=hor_bar_chart.getAxisLeft();//设置y轴边距,解决数值过大显示不全问题leftYAxis.setSpaceTop(25f);privateHorizontalBarCharthor_bar_c......
  • android 代码禁用某个应用的方法
    注意需要android.uid.system权限设置包可用+PackageManagerpm=getPackageManager();+pm.setApplicationEnabledSetting(this.getPackageName(),PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,0);设置包不可用+pm.setApplicationEnabledSettin......
  • Android 定时器简单使用及学习
    本文,介绍常用定时器实现方式:1)Handler+Sleep方式2)Handler+PostDelayed方式3)Handler+Timer方式Handler的主要作用就是用来处理接收到的信息,用Handler消息传递机制是为了多个线程并发更新U的同时,保证线程安全1)Handler+Sleep方式1.1)Handler+Sleep定义publicclassHandlerAn......
  • android: 通过Intent筛选多种类型文件
     一般使用setType()方法来实现文件过滤,如:只显示PDF文件:intrequestCode=100;Intentintent=newIntent(Intent.ACTION_GET_CONTENT);intent.setType("application/pdf");intent.addCategory(Intent.CATEGORY_OPENABLE);startActivityFor......
  • 使用MPAndroidChart实现心跳图
    简介这篇文章主要介绍如何使用MPAndroidChart实现心跳图的效果。需求分析之前考虑过用2个linechart上下叠起来,坐标轴上下设置了默认空格,数据需要处理坐标轴为0的情况,多个数据处理比较复杂,数据处理和UI效果不尽如意,最终考虑使用单个linechartview来实现效果,在数据方面我们主要......