Android 小问题集合贴

      开发Android也有10个月了,可是对好多问题都是一知半解,知其然不知其所以然,每次遇到问题都是网上找答案,解决了下次碰到还是不会。所以开个贴用于记录平常遇到的一些小细节,小问题,也希望能将每个遇到的小问题了解清楚,写上去也方便以后查看和阅读。


1、隐藏滚动条

1)、XML中

android:scrollbars="none";

2)、代码中

setVerticalScrollBarEnabled(false); //禁用垂直滚动
setHorizontalScrollBarEnabled(false); //禁用水平滚动

2、Activity弹出Dialog时背景不变暗

1)、XML上

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Dialog_style" parent="@android:style/Theme.Dialog">
      <item name="android:windowBackground">@android:color/transparent</item>
      <item name="android:backgroundDimEnabled">false</item>  
  </style>  
</resources>
代码上

AlertDialog dialog = new AlertDialog.Builder(context,R.style.Dialog_style).create();
		dialog.show();
		dialog.setContentView(R.layout.custom_round_progress);

亲测有效

2)、xml上

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Dialog_style" parent="@android:style/Theme.Dialog">
      <item name="android:windowBackground">@android:color/transparent</item>
  </style>  
</resources>
代码上

 mDialog = new AlertDialog.Builder(mContext,R.style.Dialog_style).create();
        Window window = mDialog.getWindow();
        WindowManager.LayoutParams lp = window.getAttributes();
        lp.dimAmount = 0f;
        window.setAttributes(lp);
        mDialog.show();
        // 注意此处要放在show之后 否则会报异常
        mDialog.setContentView(layout);
亲测无效,原因暂时不知。

3、java 获取当前时间毫秒数

   1)、
Date dt= new Date();
Long time= dt.getTime();//这就是距离1970年1月1日0点0分0秒的毫秒数
  2)、
System.currentTimeMillis()

4、设置socket基于tcp/ip连接服务器超时时间

在创建socket客户端时,有时因为ip地址不对,会出现很长时间(1分钟左右)才会报异常,让人都不知道是什么情况。所以很不好,那就要自己设置超时时间了。

1)、错误的方式

Socket socket = new Socket(ip,port);
socket.setSoTimeout(5000);
这个下一句是不会起作用的,因为new Socket(ip,Port);是阻塞的,只有连接成功之后才会执行下一句,所以这样不行。

2)、正确的方式

Socket socket = new Socket();
SocketAddress  sAddress = new InetSocketAddress(ip,port);
socket.connect(sAddress,5000);//5s超时
这样就OK啦。

5、Android通过SimpleDataFormat获取时间的24小时制和12小时制

之前在获取时间上完全对这个没注意,都是随意的写里面的字符串格式,

"yyyy-MM-dd HH:mm:ss"//对大小写区别不了解,认为随意的,不想今天下午获取的时间变成12小时制了,才知道大小写是有区别的
主要是小时字母的区别,HH--24小时制,hh--12小时制。


6、点击编辑框外的地方,输入框自动关闭

1)、首先在最外层布局添加点击事件,在点击事件中关闭输入框
linearLayout = (LinearLayout)findViewById(R.id.myLayout);
linearLayout.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				InputMethodManager im = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
			im.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
			}
		});

7、退出程序前一定要关闭所有线程,不然在短时间内重新启动程序可能会导致程序内数据的混乱,导致某些界面不能更新,明明执行了textview.settext却没反应。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值