首页 > 代码库 > 项目中遇到的一些小问题

项目中遇到的一些小问题

1.关于searchView:
<SearchView
    android:id="@+id/search_view"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:iconifiedByDefault="false"
    android:inputType="textFilter"
    android:queryHint="搜索" >
</SearchView>

android:iconifiedByDefault="false"表示不显示搜索的小图标,直接显示为搜索栏。


设置搜索框字体的颜色:
int id = search_view.getContext().getResources()
.getIdentifier("android:id/search_src_text", null, null);
TextView textView = (TextView) search_view.findViewById(id);

textView.setTextColor(Color.BLACK);



2.取消EditText默认自动获取焦点的行为:


在EditText的父级控件中,添加
android:focusable="true"  
android:focusableInTouchMode="true"
这样,就取消了EditText默认行为,就不会进入一个界面自动获取焦点弹出键盘了。



3.关于软键盘弹出会把原来的界面挤上去的问题:


在项目的androidmanifest.xml文件中界面对应的<activity>里加入android:windowSoftInputMode="adjustpan",
这样键盘就会覆盖屏幕,不会把布局挤上去。

如果不想键盘覆盖屏幕,想让屏幕整体上移,就加入属性android:windowSoftInputMode="statevisible|adjustresize"

(关于android:windowSoftInputMode这个属性的详细说明,请戳:点击打开链接



4.获取手机唯一的标识(IMEI):


1)在AndroidManifest.xml中增加访问设备状态的权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />


2)调用TelephonyManager的getDeviceId方法获取IMEI:
TelephonyManager telephonyManager=(TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
String imei = telephonyManager.getDeviceId();


另外,TelephonyManager类还提供了获取手机其他信息的方法,如:
getLine1Number():获取到手机号码;
getDeviceSoftwareVersion:获取到Android操作系统的版本;
getSimSerialNumber:获取到SIM卡唯一编号ID;
getSubscriberId:获取到客户ID,即IMSI;



项目中遇到的一些小问题