44.设置控件大小
LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) aaa.getLayoutParams();
// 取控件aaa当前的布局参数
linearParams.height = 365; // 当控件的高强制设成365象素
aaa.setLayoutParams(linearParams); // 使设置好的布局参数应用到控件aaa
45.Android--从路径中提取文件名
方法一:利用String类
public String getFileName(String pathandname){
int start=pathandname.lastIndexOf("/");
int end=pathandname.lastIndexOf(".");
if(start!=-1 && end!=-1){
return pathandname.substring(start+1,end);
}else{
return null;
}
}
方法二:利用正则表达式
String regEx=".+\\\\(.+)$";
String str="C:\\Documents and Settings\\Administrator\\My Documents\\myfile.txt";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
boolean rs=m.find();
if(rs){
for(int i=1;i<=m.groupCount();i++)
{
System.out.println(m.group(i)); //括号内匹配内容
}
}
46.键盘挡住输入框解决办法
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE |
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
以下选项与输入法模式有关:
软输入区域是否可见。
public static final int SOFT_INPUT_MASK_STATE = 0x0f;
未指定状态。
public static final int SOFT_INPUT_STATE_UNSPECIFIED = 0;
不要修改软输入法区域的状态。
public static final int SOFT_INPUT_STATE_UNCHANGED = 1;
隐藏输入法区域(当用户进入窗口时)。
public static final int SOFT_INPUT_STATE_HIDDEN = 2;
当窗口获得焦点时,隐藏输入法区域。
public static final int SOFT_INPUT_STATE_ALWAYS_HIDDEN = 3;
显示输入法区域(当用户进入窗口时)。
public static final int SOFT_INPUT_STATE_VISIBLE = 4;
当窗口获得焦点时,显示输入法区域。
public static final int SOFT_INPUT_STATE_ALWAYS_VISIBLE = 5;
窗口应当主动调整,以适应软输入窗口。
public static final int SOFT_INPUT_MASK_ADJUST = 0xf0;
未指定状态,系统将根据窗口内容尝试选择一个输入法样式。
public static final int SOFT_INPUT_ADJUST_UNSPECIFIED = 0x00;
当输入法显示时,允许窗口重新计算尺寸,使内容不被输入法所覆盖。
不可与SOFT_INPUT_ADJUSP_PAN混合使用;如果两个都没有设置,系统将根据窗口内容自动设置一个选项。
public static final int SOFT_INPUT_ADJUST_RESIZE = 0x10;
输入法显示时平移窗口。它不需要处理尺寸变化,框架能够移动窗口以确保输入焦点可见。
不可与SOFT_INPUT_ADJUST_RESIZE混合使用;如果两个都没有设置,系统将根据窗口内容自动设置一个选项。
public static final int SOFT_INPUT_ADJUST_PAN = 0x20;
当用户转至此窗口时,由系统自动设置,所以你不要设置它。
当窗口显示之后该标志自动清除。
public static final int SOFT_INPUT_IS_FORWARD_NAVIGATION = 0x100;
47.将字符串文字内容复制到系统剪贴板
ClipboardManager cmb = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
cbm.setText(et.getText().toString());
48.重执行onCreateDialog
onCreateDialog(**)产生的dialog会保存状态的,之后打开的dialog内容不会变,要想内容可以动态改变,可以重写onPrepareDialog(int id)函数,
里面执行removeDialog(id)即可。执行顺序是onCreateDialog(**) --> onPrepareDialog(**)。
49.设置文本,并使文本关键字高亮,用于搜索中
/**
allString: 显示文本
highLightString: 搜索关键字
*/
void setHighlight(TextView textView, String allString, String highLightString) {
allString = allString.toLowerCase();
highLightString = highLightString.toLowerCase();
int start = allString.indexOf(highLightString);
if (start < 0) {
return;
}
SpannableStringBuilder style = new SpannableStringBuilder(allString);
style.setSpan(new BackgroundColorSpan(Color.RED), start, start + highLightString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(style);
}
50.检测输入文本变化
mTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
queryFriend(s.toString());
}
};
mSearchInputBox.addTextChangedListener(mTextWatcher);
阅读(1657) | 评论(0) | 转发(0) |