应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

android 弹出选择框,简单通用弹出选择框

10324人阅读 2019/3/18 20:41 总访问:5194485 评论:0 收藏:0 手机
分类: 移动开发


制作一个简单通用的弹出选择框

  1. LinearLayout ll =(LinearLayout)getActivity().findViewById(R.id.log_sel_qyport);
  2. ll.setOnClickListener(new View.OnClickListener() {
  3.  
  4.             public void onClick(View v) {
  5.              ShowChoise();    
  6.             }
  7.     });
  1. private void ShowChoise()
  2. {
  3. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),android.R.style.Theme_Holo_Light_Dialog);
  4.         //builder.setIcon(R.drawable.ic_launcher);
  5.         builder.setTitle("选择一个城市");
  6.         //    指定下拉列表的显示数据
  7.         final String[] cities = {"广州""上海""北京""香港""澳门"};
  8.         //    设置一个下拉的列表选择项
  9.         builder.setItems(cities, new DialogInterface.OnClickListener()
  10.         {
  11.             @Override
  12.             public void onClick(DialogInterface dialog, int which)
  13.             {
  14.                 Toast.makeText(getActivity(), "选择的城市为:" + cities[which], Toast.LENGTH_SHORT).show();
  15.             }
  16.         });
  17.         builder.show();
  18. }

android 弹出选择框默认是显示的是黑底白字,如果要改为白底黑字则实例化的时候指定下风格

  1. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),android.R.style.Theme_Holo_Light_Dialog);


但是修改成白底黑字后可能会出现多出来背景的问题可以使用把背景设置成透明色解决


方法1:   r_dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);

  1.  AlertDialog r_dialog = builder.create();
  2.         r_dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
  3.         r_dialog.show();


方法2:重写写样式

  1.  <style name="MyDialog"
  2.           parent="android:Theme.Holo.Light.Dialog"> 
  3.             <item name="android:windowBackground">@android:color/transparent</item>                             
  4.       </style>


简单通用弹出选择框,keys没有可以不传

  1. public void Choise(final List<String> values,final List<String> keys,final FragmentActivity _ac,final DoubleAction _action,String _title)
  2. {
  3. if(values.size()==0)
  4. {
  5. Toast.makeText(_ac, "正好努力数据中,请稍等", Toast.LENGTH_SHORT).show();
  6. }
  7. AlertDialog.Builder builder = new AlertDialog.Builder(_ac,R.style.MyDialog);
  8.         //builder.setIcon(R.drawable.ic_launcher);
  9.         builder.setTitle(_title);
  10.         //    指定下拉列表的显示数据
  11.         //    设置一个下拉的列表选择项
  12.         builder.setItems(values.toArray(new String[values.size()]), new DialogInterface.OnClickListener()
  13.         {
  14.             @Override
  15.             public void onClick(DialogInterface dialog, int which)
  16.             {   
  17.              String name = values.get(which);
  18.              if(name.equals("未选择"))
  19.              {
  20.              _action.actionDouble(name,"-1");
  21.              }
  22.              else
  23.              {
  24.              if(keys==null)
  25.              {
  26.              _action.actionDouble(name,null);
  27.              }
  28.              else
  29.              {
  30.                    _action.actionDouble(name,keys.get(which));
  31.              }
  32.              }
  33.             }
  34.         });
  35.         
  36.         AlertDialog r_dialog = builder.create();
  37.         r_dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
  38.         r_dialog.show();
  39. }

写好接口

  1. public interface DoubleAction {
  2.  
  3. public void actionDouble(String _value,String _key);
  4. }

方法

  1.  private void addChoiseEvent()
  2.     {
  3.      final List<String> values = new ArrayList<String>();
  4.      values.add("a船");
  5.      values.add("s船");
  6.     
  7.      final List<String> keys = new ArrayList<String>();
  8.      keys.add("1");
  9.      keys.add("2");
  10.     
  11.      final TextView lsm =(TextView)getActivity().findViewById(R.id.manual_shipname); 
  12. lsm.setOnClickListener(new View.OnClickListener() {
  13. public void onClick(View v) {
  14. new SimpleChoise().Choise(values,keys,getActivity(),new DoubleAction(){
  15. @Override
  16. public void actionDouble(String _value, String _key) {
  17. // TODO Auto-generated method stub
  18. lsm.setText("value:"+_value+",key:"+_key);
  19. //lsm.setTag(data2);
  20. }
  21. },"请选择船舶");
  22. }
  23.     });
  24.     }


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

解决android studio运行出现Session 'app': Error Installing APKs错误

之前项目好好的,早上打开突然报错Session &#39;app&#39;: Error Installing APKs解决方法:选择Build———— clean proje...

android使用MPandroidChart开源图表折线图

1. 将mpandroidchartlibrary-2-1-6.ja包copy到项目的libs中在引用2:布局文件&lt;com.github.mikephil.charting.charts.Line...

android studio打包脱坑1

打包时出现的&#39;:app:validateExternalOverrideSigning&#39;问题报错如下解决方法错误的原因是找不到这个签名文件。由于K...

javaandroid 使用socket.io-client连接nodejs websocket

socket.io-client相比SocketIO.jar使用起来更方便一点publicvoidconnection(finalMapAction_action){ try{ IO.Optionsopt...

javaandroid 使用SocketIO.jar连接nodejs websocket

socket.io-client版连接nodejs websockethttp://www.tnblog.net/aojiancc2/article/details/2562一:更具url建立连接,调用...

Xamarin: android.permission.CALL_PHONE 的权限问题

写个电话拨号器,很简单就一个Edittext和一个button,用来输入号码并且点击按钮拨打电话,但是写好以后报的是安全错误,我上...

android 漂亮的listview

效果如下:首先在drawable下定义选择器shape_bg_listview.xml 实现圆角:&lt;?xmlversion=&quot;1.0&quot;encoding=&quot;...

android 获取导航栏的高度

获取Android手机屏幕的高度/** *获取状态栏高度 * *@paramcontext上下文 *@return高度 */publicstaticintgetStatusBar...

android 代码

一、判断WiFi是否打开1、注册权限//需注册权限android.permission.ACCESS_WIFI_STATE WifiManagerwifiManager=(WifiManage...

ionic cordova platform add android报错

ionic各种环境以及配置完但是添加平台报错:Using cordova-fetch for anroidFailed to fetch platform anroidProbably this...

android 布局文件里输入框的值自动转换到类里边可以增加为空验证

android 布局文件里输入框的值自动转换到类里边,不用一个一个去读取在赋值先看看android遍历view子控件,用回调函数 /** ...

android 布局实例解析 格子菜单效果

使用android权重布局,使每个格子和间隔在不同手机中自动适配: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8...

android后台动态添加布局文件、控件与动态设置属性

翻译布局文件布局文件 &lt;LinearLayout android:layout_width=&quot;fill_parent&quot; andro...

android后台动态添加布局文件、控件与动态设置属性2

原布局文件 &lt;ScrollView android:layout_width=&quot;wrap_content&quot; android:layout_heig...

android 绘制自定义控件,android绘制同心圆,android绘制小三角,android画虚线

一:实现同心圆加小三角指向效果 同心圆public class RingView extends View{ private Paint paint; privat...