ListView

ListView

RecyclerView

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);
}

最新文章

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

热门文章

  1. SALESGROSSSALES_成本_利润
  2. nvm安装教程
  3. 01 语言基础+高级:1-8 File类与IO流_day10【缓冲流、转换流、序列化流】
  4. winEdt打开tex文件报错解决方法
  5. ae基础二
  6. Vue专题-生命周期
  7. 测试Java程序执行耗费的时间
  8. restful的简单使用
  9. column命令
  10. maven隐含依赖