ListView
RecyclerView
ExpandableListView
关闭箭头
elvMsg.setGroupIndicator(null); //箭头置空
默认展开(通过setOnGroup设置,返回false为不展开,true为展开)
elvMsg.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { return false; //默认展开 } });
WebView使用总结
设置默认加载方式
wvAD.loadUrl(url);//必须先调用 wvAD.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; //返回true代表使用webview加载网页 } });
设置页面支持缩放
WebSettings mWebSettings = wvAD.getSettings(); mWebSettings.setBuiltInZoomControls(true); // 支持页面放大缩小按钮 mWebSettings.setSupportZoom(true);
设置页面标题
wvAD.setWebChromeClient(new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); refreshTitle(title);//重写该方法即可更改标题 } });
TextView的属性
- maxWidth属性跟singleLine属性连用可设置文字超过一定字数自动加“。。。”
android:maxWidth="200dp"
android:singleLine="true"
- 代码中设置drawable
Drawable drawable = getResources().getDrawable(R.drawable.course_manage_agency_icon);
drawable.setBounds(0,0,100,100); //可以改变图标大小
tvAgencyValue.setCompoundDrawables(drawable,null,null,null);//调用这个方法可以使setBounds有效
textColor属性可以设置selector
textColor必须调用 “@color/red_selector” 而不是 “@drawable/red_selector”
android:textColor="@color/teach_kq_button_text_color_selector"
selector里不能用drawable属性,否则会报错,直接用color即可。
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color="@color/common_text_red" /> <item android:state_checked="true" android:color="@color/common_text_red" /> <item android:color="@color/common_text_gray" /> </selector>
DatePickerDialog的总结
Calendar跟onDateSet里面的月份比正常少1
onDateSet之后求long型日期,月份需要加上1
Calendar.getTimeInMillis()得出的是正确的日期
DatePicker显示成滑动模式
android:calendarViewShown="false" android:datePickerMode="spinner"
DatepickerDialog用法初始化日期(结合Calendar)
Calendar nowCalendar = Calendar.getInstance();//获取当前日历(参照物) Calendar startCalendar = Calendar.getInstance();//获取当前日历,用于设置开始日期 startCalendar.set(Calendar.YEAR , nowCalendar.get(Calendar.YEAR));//获取当前的年 startCalendar.set(Calendar.MONTH , nowCalendar.get(Calendar.MONTH));//获取当前的月 startCalendar.set(Calendar.DAYOFMONTH , nowCalendar.get(Calendar.DAYOFMONTH));//获取当前的日 long startDate = startCalendar.getTimeInMillis(); //初始化long日期 String strDate = FormatUtil.getStringFromDate(startDate);//根据long初始化成str文字日期
DatepickerDialog 修改数据用法
- Calendar初始化日期、初始化long日期、初始化str日期
创建DatepickerDialog.OnDateSetListener监听器 重写其onDateSet方法 大专栏 Widgets学习 ,修改Calendar的日期(set方法)
final DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int month, int day) { long date = FormatUtils.getTimestampByDate(year, month + 1, day); //利用dateSet的日期需要+1; if (date > System.currentTimeMillis()) { //提示日期不能超过当前时间 } else { calendar.set(year, month, day);//通过calendar保存日期 shareDate = calendar.getTimeInMillis(); //获取该日期的时间戳 strDate = FormatUtils.getDateFormatType1Str(shareDate);//设置该日期 tvShareDate.setText(strDate); } } };
* 通过Calendar 初始化Dialog的日期。
* 创建DatepickerDialog对象,传入上述的参数(通过Calendar来获取)
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(this, listener, year, month, day);
dialog.show();
把Datepicker的年月日转成时间戳
(求long时,dateSet传入的月份要+1)
public long getTimestampByDate(int year, int month, int day) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String strDate = year + "-" + month + "-" + day; //拼装 Date date = sdf.parse(strDate); return date.getTime(); //转换成时间戳 }
总结:
- 直接用Calendar、dateset设置数据不需要+1.
- 需要用long进行判断且获取Calendar月份的时候,月份才需要加一。
示例: 实现下面效果
初始化数据
- 进入界面利用Calendar的set()或者setTimeInMillis()设置数据
- 利用上述Calendar获取long时间戳
- 格式化时间戳显示成文字
修改数据
- 创建DatePickerDialog.OnDateSetListener,利用Calendar修改数据、获取时间戳、显示文字
- 创建DatePickerDialog,初始化dialog默认日期。(上述)
Checkbox、RadioButton总结
RadioButton
Radiobutton去掉圆圈
android:button=”@null”
改变圆圈样式,自定义shape
android:drawableLeft、Right、Top、Bottom 调用该图片
创建selector,设置check 属性对应的图片即可
- 选中的设置 checked、selected属性
默认的不用设置属性(一定要放在最下面)
<item android:state_selected="true" android:drawable="@drawable/选中的图" /> <item android:state_checked="true" android:drawable="@drawable/选中的图" /> <item android:drawable="@drawable/不选中的图" />
还需要设置默认第一个tag为红色。
在Activity中通过setSelected()方法设置为红色。
在点击事件里,设置其他button为灰色
代码如下:
@Override
public void onClick(View v) {
if(index == 0){
btn1.setSelected(true);
btn2.setSelected(false);
.
.
btn10.setSelected(false);
}
}
Checkbox(选中效果必须与HashMap、HashSet等结合使用)
- 在item点击事件里将position、数据保存在hashmap即可。
通过判断HashMap里面是否含有该值来设置是否选中。
ListView中用ImageView实现单选效果(如图)
- 使用一个ImageView代替Checkbox
- 创建一个HashMap
//通过position做key保存id - 在点击事件里,每点击一次将原有的数据清空,再重新加入值(保证hashmap集合只包含一个值。)
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectItem.clear(); //清空原有的数据,保证单选
selectItem.put(position,user.getUserId());
mAdapter.notifyDataSetChanged();
}
});
if(selectIten.keySet().contains(position)){
holder.ivCheck.setVisibility(View.VISIBLE);
}else{
holder.ivCheck.setVisibility(View.GONE);
}