实用知识点记录

本文记录了Android开发中的实用知识点,包括如何设置视图可见性、使用Html设置字体样式,以及在性能优化中如何用SparseArray代替HashMap。通过具体的代码示例,解释了SparseArray的核心优势在于它的折半查找功能,从而提高应用性能。
摘要由CSDN通过智能技术生成
ZHbos:
1. ①textView 限定行数
  textView.setMaxLines(3);  最多几行
 ②划掉的效果:
  tvNovipprice.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
③ 设置Visibility

// 如果最后更新的时间的文本是空的话,隐藏前面的标题

mHeaderTimeViewTitle.setVisibility(TextUtils.isEmpty(label) ? View.INVISIBLE : View.VISIBLE);

④ 设置字体样式

tvStepCount.setText(Html.fromHtml("<font color='black'>步数:</font>" + "<font color='red'>" + todayStep + "</font>"));

2. 价格 免费
 ① textView.setText(Double.valueOf(remoteDetailModel.price) > 0 ? ("¥" + remoteDetailModel.price + "元/次") : "免费"); 
 ②setText(Double.valueOf(model.getPrice()) > 0 ? CommonUtil.doubleTranstoStr(Double.valueOf(model.getPrice())) + "元" : "免费"); 
 ③ CommonUtil.doubleTranstoStr  // 把double型转成String
3.
 错误①解决:   空指针 ,取消按钮布局去掉了,而java中是用id 设置的监听,没删掉 所以出错了。 
 调试:
  运行起来,点击“Attach debugger to Android Process.”

4. Json 数据 Bean增加字段
  ① 在Bean中添加一个变量,生成set/get方法,Studio 快捷键 :Alt + Insert.
  gson库会自动完成 set/get 的方法,把json数据解析成Bean.
  ② 把变量定义成 public,就不用 get/set 方法了。

5. Boolean 与 boolean的区别
boolean是基本数据类型
Boolean是它的封装类,和其他类一样,有属性有方法,可以new,例如:
Boolean flag = new Boolean("true");  // boolean 则不可以!
Boolean 是boolean 的实例化对象类,和Integer对应int一样
同理,Integer 与 int 也是一样

6. 将数组转换成List:
 // 不要直接Arrays.asList
 mDataList = new ArrayList<String>(Arrays.asList("HelloWorld", "Welcome", "Java", "Android", "Servlet", "Struts","Hibernate", "Spring", "HTML5", "Javascript", "Lucene"));

7. 将String 分割成数组
String[] ids=str.split(",");   // 将String 分割成数组

char[] aa=str.toCharArray();   //取出String中的字符


8. ActionBar
① 自定义ActionBar布局
   private void initActionBar() {
		// Activity继承自 ActionBarActivity
        android.support.v7.app.ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayShowTitleEnabled(false);
        LayoutInflater inflater = LayoutInflater.from(this);
		// 得到自定义的View
        final View actionBarView = inflater.inflate(R.layout.coustom_health_education_actionbar, null);
        TextView title = (TextView) actionBarView.findViewById(R.id.actionbar_title_text);

        LinearLayout layout_search = (LinearLayout) actionBarView.findViewById(R.id.layout_search);
        TextView actionbar_subscribe = (TextView) actionBarView.findViewById(R.id.actionbar_subscribe);

        actionbar_subscribe.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(HealthEducationActivity.this, HealthManagerSubscribeActivity.class));
            }
        });
        actionBar.setCustomView(actionBarView);  // 将View设置进ActionBar
        actionBar.setDisplayShowCustomEnabled(true); // 将自定义功能设为可用    

9. Android Studio R 导入不了,出错的问题
 分析:是因为layout等资源出错等问题,导入R没有生成成功。
 可查看 /app/build/generated/source/r/debug 或者 /app/gradle/wheel/gen下是否有R.


10.  间隔的问题
巧用android:divider属性设置LinearLayout中元素之间的间隔
简单点 用系统自带的divider:   android:divider="?android:attr/dividerHeight"

11. Android Studio 中导入jar包:
① 把jar 包拷入libs目录下
② 在 build.gradle下的dependencies中加入
compile files('libs/eventbus.jar')
Android Studio中导入 library:
① import Modules...
② 工程右键 -->open module setting -->Dependencies 加入library.

12.  价格格式,日期格式
// 格式化价格
public static String formatPrice(Double price)
  {
      String newprice = "0.00";
      DecimalFormat df = new DecimalFormat("#######0.00");
      newprice = df.format(price);
      return newprice;
  }
//字符串转换成日期 (默认格式:yyyy-MM-dd HH:mm:ss)
//strToDate(str, "yyyy-MM-dd HH:mm:ss");  
 public static Date strToDate(String str, String format)
 {
     SimpleDateFormat sdf = new SimpleDateFormat(format);
     Date date = null;
     try
     {
         date = sdf.parse(str);
     }catch (ParseException e)
     {           }
     return date;
 }

13. 十进制和十六进制的相互转换  
① 十进制转化为十六进制,结果为C8。
   Integer.toHexString(200);
② 十六进制转化为十进制,结果140。
   Integer.parseInt("8C",16);
链接:Java的十六进制与字符串之间互相转换函数(16进制与String转换)

14.  JSON解析
① 如果是Json对象
 JSONObject jsonObject=new JSONObject(resultBean.getResult());
 String url = jsonObject.getString("url");
② 如果要解析成Json数组
 JSONArray result = new JSONArray(resultBean.getResult());  //解析成Json数组
ArrayList<SaveMoneyItemModel> dataList = gson.fromJson(result.toString(), new
 TypeToken<ArrayList<SaveMoneyItemModel>>() {}.getType());
或者:
 JSONObject result=new JSONObject(resultBean.getResult());
 JSONArray array = result.getJSONArray("order");
 ArrayList<SaveMoneyItemModel> dataList = gson.fromJson(array.toString(), new
 TypeToken<ArrayList<SaveMoneyItemModel>>() {}.getType());

15. ScrollView中事件冲突解决
 wv_content = (WebView) findViewById(R.id.wv_content);
 sv_layout=(ScrollView)findViewById(R.id.sv_layout);
 //滑动时 sv_layout不拦截事件
 wv_content.setOnTouchListener(new View.OnTouchListener() {
     @Override
     public boolean onTouch(View v, MotionEvent event) {
           sv_layout.requestDisallowInterceptTouchEvent(true);
         return false;
     }
 });

16. xml转化成View
需要用inflate, 有几种方式:
① LayoutInflater layoutInflate=LayoutInflater.from(context);
    View view=layoutInflater.inflate(layoutId,null);
② View view = View.inflate(context,layoutId,null);

17.  9Patch
左边 那条黑色线代表图片垂直拉伸的区域,
上边 那条黑色线代表水平拉伸区域,
右边 黑色线代表内容绘制的垂直区域,
下边 黑色线代表内容绘制的水平区域,
右边和下边的线是可选的,左边和上边的线不能省略。

18. 解决scrollView中嵌套编辑框导致不能上下滑动的问题

19. SparseArray、ContentValues、Bundle、Parcelable

 解析:① SparseArray 是android里为<Interger,Object> 这样的Hashmap而专门写的class,目的是提高效率,其核心是折半查找函数(binarySearch).

              Android应用性能优化之使用SparseArray替代HashMap

  ② ContentValues 是 <String,基本数据类型> (一般在数据库中使用)。HashTable类似,而HashTable却可以存储对象。
  ③ Bundle(用于两个activity之间通讯) 也是key -value的形式。<String,多类Parcelable>   Android Bundle类
  ④ Android Parcelable和Serializable的区别

20. listview addHeaderView和addFooterView的注意事项

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值