這是日常工作中遇到的問題,匯總下來以備日后查看
1、字體修改: as下assets文件加的創(chuàng)建,修改文字的字體,目前只支持ttf格式
setTypeFace(tv_luckydraw_rule, "fonts/LanTingZhongCuHei.TTF");
/**
* 設(shè)置字體
*
* @param mTextView
* @param font
*/
private void setTypeFace(TextView mTextView, String font) {
Typeface typeFace = Typeface.createFromAsset(getAssets(), font);
mTextView.setTypeface(typeFace);
}
2、讓ExpandableListView的group取消點(diǎn)擊監(jiān)聽
listview..setOnGroupClickListener(this);
/**
* 取消group的點(diǎn)擊監(jiān)聽
*/
@Override
public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
return true;
}
3、EditText降輸入的小寫字母自動(dòng),變化為大寫字母(注:設(shè)置完之后只能輸入大寫字母)
import android.text.method.ReplacementTransformationMethod;
/**
* @author bruce.z
*
*/
public class AllCapTransformationMethod extends ReplacementTransformationMethod {
@Override
protected char[] getOriginal() {
char[] aa = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k','l','m','n','o','p','q','r','s','t','u','v', 'w','x','y','z' };
return aa;
}
@Override
protected char[] getReplacement() {
char[] cc = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K','L','M','N','O','P','Q','R','S','T','U','V', 'W','X','Y','Z' };
return cc;
}
}
editext.setTransformationMethod(new AllCapTransformationMethod ());
4、TimePickerDialog,選擇0-9分鐘時(shí),顯示為10:0 10:1,要改成 10:00 10:01 的解決方式
/**
* 設(shè)置時(shí)間選擇器
*/
private void setTimePickerDialog() {
mCalendar = Calendar.getInstance();
mCalendar.setTimeInMillis(System.currentTimeMillis());
final int hour = mCalendar.get(Calendar.HOUR_OF_DAY);
int minute = mCalendar.get(Calendar.MINUTE);
new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view,int hourOfDay,int minute)
{
String sHour = hour < 10 ? "0" + hour : "" + hour;
String sMinutes = minute < 10 ? "0" + minute : ""
+ minute;
tv_flight_start_time.setText(sHour + ":" + sMinutes);
}
}, hour, minute, true).show();
}
5、editText設(shè)置軟鍵盤刪除鍵監(jiān)聽
editText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if (i == KeyEvent.KEYCODE_DEL
&& keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
editText.setText("");
return true;
}
return false;
}
});
6、應(yīng)用商店有同名的APP,需要認(rèn)領(lǐng)應(yīng)用一致的簽名寫入空包中,簽名寫入空白apk
jarsigner-verbose -keystore D:\oldClient -signedjar D:\TestSign_OK.apk D:\TestSign.apkjsj
jarsigner -verbose -keystore [您的私鑰存放路徑]-signedjar [簽名后文件存放路徑][未簽名的文件路徑] [您的證書名稱]
7、TextView過長(zhǎng)隱藏部分文字,可指定開頭,中部,結(jié)尾等
TextView中有個(gè)ellipsize屬性,作用是當(dāng)文字過長(zhǎng)時(shí),該控件該如何顯示,解釋如下:
1.android:ellipsize=”start”—–省略號(hào)顯示在開頭
2.android:ellipsize=”end”——省略號(hào)顯示在結(jié)尾
3.android:ellipsize=”middle”—-省略號(hào)顯示在中間
4.android:ellipsize=”marquee”–以跑馬燈的方式顯示(動(dòng)畫橫向移動(dòng))
還需將文字設(shè)置成maxline=1,指定固定寬度
8、解決RecycleView中item中子View,setVisibility為GONE隱藏視圖但是現(xiàn)實(shí)空白的方法
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
...
public void setVisibility(boolean isVisible){
RecyclerView.LayoutParams param = (RecyclerView.LayoutParams)itemView.getLayoutParams();
if (isVisible){
param.height = LinearLayout.LayoutParams.WRAP_CONTENT;
param.width = LinearLayout.LayoutParams.MATCH_PARENT;
itemView.setVisibility(View.VISIBLE);
}else{
itemView.setVisibility(View.GONE);
param.height = 0;
param.width = 0;
}
itemView.setLayoutParams(param);
}
public ViewHolder(View itemView) {
super(itemView);
...
}
}