Widgets学习
2024-10-08 18:21:07
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);
}
最新文章
- 用Spring Boot颠覆Java应用开发
- jQuery基础知识总结
- ae GP制作缓冲区分析
- Unity粒子系统特性
- js001-JavaScript简介
- 提取SD卡中的图片
- WizardDialog 进度条使用记录
- The Bottom of a Graph(tarjan + 缩点)
- MVC 异步请求
- 5分钟学习maven
- 开源的读取Excel文件组件-ExcelDataReader
- linux网络编程:select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET(转)
- DBUtils-对JDBC简单封装的开源工具类库
- psvm中String [] args 理解
- Subplot 分格显示
- Hadoop生态圈-Knox网关的应用案例
- source insight 相对路径新建工程
- Oracle 11g R2 for Win7旗舰版(64位)- 安装
- 【bzoj3170】[Tjoi2013]松鼠聚会
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第2章动手实战Scala第3小节:动手实战Scala函数式编程(2)