易错总结~  发现,其实它的request挺多的,以及错一点都会全局错,还是多记下来吧。 https://blog.csdn.net/qq_31490071/article/details/82384011再报错???看看这个咯!!

here 1 :线性布局

android:orientation="vertical"/  horizontal 改变排布方式 android:layout_gravity="top"/ "center_vertical" / bottom 指定效果布满: 需要布满的:    android:layout_width="0dp"         android:layout_height="wrap_content"         android:layout_weight="1" 剩下那个就是: android:layout_width="wrap_content"         android:layout_height="wrap_content" 这样,上面可以填满剩下的空间 记得一个0dp,一个大大的1!!!!

2 监听器和创建按钮:

 Button add_blog=(Button)findViewById(R.id.add_blog);     add_blog.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View view) {         }     });

3  添加intent:

新建 活动,而不是直接新建一个布局 那就先用显式的intent吧  New→Activity→Empty Activity (只要不选是主activiy就行了哈哈哈) 这样,这个活动会自己去manifest里面注册好了~ [布局是动态加载出来的 super.onCreate(savedInstanceState);         setContentView(R.layout.activity_edit);  所以名字没事儿 不可怕 那么创建了之后,非常简单,肯定是要先new一个出来的,然后指定了前面和后面,最后就基本ok啦。 Intent intent=new Intent(MainActivity.this,EditActivity.class);             startActivity(intent);

传递个值过去:

字符串data,intent.putExtra("....",data) 第一个参数是键 第二是传递的 取得 Intent intent = getIntent();         String data = intent.getStringExtra("extra_data");  // 注意这里竟然只是一个引号就好了 getBooleanExtra.. 参数多一个default 传递回来:startActivityForResult() 方法接收两个参数,第一个参数还是Intent,第二个参数是请求码,,还有onresult什么的,在书里自己看吧qwq     跳出框框提示  

4. 把数据库里面的东西存储到listview里面

listview需要 适配器: 使用android.R.layout.simple_list_item_1 作为ListView子项布局的id,这是一个Android内置的布局文件,里面只有一个TextView,可用于简单地显示一段文本。 (这个具体看那个(三)里面了 

5 Toast用法

Toast.makeText (FirstActivity.this, "aaaaa",Toast.LENGTH_SHORT).show(); context写自己.this Log.d(.....0) 用法 前面tag是字符串,可以是这个活动的名字, 后面的也是字符串

6.Date类型和获取时间

发现这个老哥是获取了date直接设置的,不错,这样显然更方便一点 Date date = new Date();         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");         String dateString = sdf.format(date);         tv_date.setText(dateString); (ps: 在写好的里面改,好像库不能直接新建而要升级。emmm先不知道,所以先卸载再来之后再说  1 oncreate里面改了 2 查询的时候有了 3 存储进去的时候有 4 listview显示  )  

7.Image BUtton

qwq 先做了一个imageButton:找不到该放在哪,还是回书上
这里我们在res目录下新建一个drawable-xhdpi目录,然后将事先准备好的两张图片img_1.png和img_2.png复制到该目录当中。但是为啥新建了目录根本看不到? 【名字不能有-  只能数字字母或者 下划线!】 但是,这样做效率也太低了,这button仅仅是放了上去而已,想随屏滚动、想控制xx真是刀山火海啊。 所以搜了半天,发现一个文本编辑的span类 下面这样是可以的 但只能设置一个                   int start =edit_passage.getSelectionStart();                 int end = edit_passage.getSelectionEnd();                 SpannableStringBuilder ssb = new SpannableStringBuilder(edit_passage.getText().toString());                 ssb.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_INCLUSIVE_INCLUSIVE);                 edit_passage.setText(ssb); 修改样式的位置是[start,end)  和substring一样  是左闭 右开的 就是这个问题:只能用一次,之后设置,之前的不管用了。不懂行的想substring一下,还是不行的,看到下面的博客:https://blog.csdn.net/gxp1182893781/article/details/76916796 无论what使用哪种,一定要注意一个问题:每个CharacterStyle对象只能应用于一个Spanned,也就是说每个CharacterStyle对象只能使用一次。如果在给定的String中对多个字符应用,则只有最后一次应用会起作用。(没错)emememem.. 但是对于一个bulider,这个似乎是没用的ememem    builder.setSpan(CharacterStyle.wrap(colorSpan[rand]), i - 1, i, Spanned.SPAN_INCLUSIVE_INCLUSIVE); 这个并不行 只是它那个bulider更替了很多次 但是text坏掉了 照我们这样每次取出来 的text只是个string 不带样式的string而已 所以设置一次之后再设置 就走形了... 可以不提取string先试试吗?好了好了我知道你这个ssb可以这样了,我们来现实一点骨干一点好吗 啊啊啊啊啊啊啊啊!苦苦看了好半天,原来我的问题竟然出现在 edittext的获取方法上~!!! 应该是geteditabletext,如果gettext再tostring,你的样式当然没了 ,还是自己蠢吧,难怪别人都没遇到这种问题,大概本来别人就觉得不是问题吧…… 如果可以!!更有的放矢一点!你现在还是个菜菜菜菜鸟,前几天还在犯忘记找id的错误 (注意一下区间可能多点少点 变化颜色:ssb.setSpan(CharacterStyle.wrap(new ForegroundColorSpan(Color.GREEN)),start, end, Spanned.SPAN_INCLUSIVE_INCLUSIVE); 那么现在,新增个格式可以了。那么只有你选中的span都有格式,才能取消。如果卡在中间,就覆盖(这种情况不用判断啦 区间取消 这个emm。。 经过一番努力,                     StyleSpan[] spans = edit_passage.getEditableText().getSpans(i, i + 1, StyleSpan.class);                     for (StyleSpan span : spans) { 还真是,获取到你这个里有啥span,qwq,至于数组,是获取到有什么其他span吧qwq这样看挺好的还  起码qwq  分别加span样式的方法有了。。。(editable) 你需要: ssb.setSpan(new StyleSpan(Typeface.BOLD) (有点脑子;为什么几乎一样的上面可以下面 就不行?没理由呀,是你自己写错了吧。 subSequence(start, end)直接返回区间,直接分割。 发现removespan并不起作用。现在是可以调用人家的开源的外部库来编辑了呀。。。要是坐到像下载的那个那样这么好看就好了 emmmm,到底怎么能起作用呢?灵光一现,虽然editable.removespan 这个方法没有报错,但是显然,它是给ssb类写的~ 这样我ssb.removespan。 随机把它settet(ssb)。这大概需要一点灵性~~~  好了,继续改了qwq啦啦啦 subsequence  左臂右开same 调试不出来。还是自己想的,大概斜体和下划线不一样而已qwq。。。 不一样而已。如果一样,会把StyleSpan的全部都给清除的。而underline不是一类的,这一类的还有的是 italic。 好的。那就可以回到原来的,用for循环判断了。 emmmm嗯。。。 直接removespan似乎是不行的,需要先getspan,再直接拿走掉。
if(cnt==num){
StyleSpan[] spans=ss.getSpans(start, end, StyleSpan.class);
for(int j=0; j if(spans[j].getStyle()==Typeface.BOLD)
ss.removeSpan(spans[j]);
}
然后,代码可以再精简点,也可不用,先实现。 有color和size,加underline。color应该好办吧(继续看即可)size if(isRemove) {                 SpanPart spanStyle = new SpanPart(fontStyle);                 spanStyle.start = getEditableText().getSpanStart(span);                 spanStyle.end = getEditableText().getSpanEnd(span);                 if(span instanceof AbsoluteSizeSpan){                     spanStyle.fontSize = ((AbsoluteSizeSpan) span).getSize();                 }else if(span instanceof ForegroundColorSpan){                     spanStyle.color = ((ForegroundColorSpan) span).getForegroundColor();                 }                 spanStyles.add(spanStyle);                 getEditableText().removeSpan(span); ===================================================

复制别人的: 改gradle版本,先改外面的

然后 gradle可以用本地的(换好路径就ok 若有这个错:Warning:Configuration 'testCompile' is obsolete and has been replaced with 'testImplementation' and 'testApi'. 我的解决方法是,在 app 的 Gradle 中:【注意  是app下面的gradle~】 compile 改为 implementation androidTestCompile 改为 androidTestImplementation testCompile 改为 testImplementation 这样替换了过时的,再重新编译即可。 图上要 字数和编辑选项 dbHelper.getWritableDatabase();、 感觉还是先看老大哥的教程 什么的好啊自己踩坑太多了 …… 聊天界面什么的书上也讲的很好只是我没学qwq 最后把注释都删掉,为了好看,或者搞两个版本 https://developer.android.google.cn/reference/android/text/SpannableStringBuilder.html    

转载于:https://www.cnblogs.com/lx2331/p/10900903.html

更多相关文章

  1. Android(安卓)使用setContentView来实现Acitivity的跳转
  2. android布局页面中引入另一个布局页面
  3. Android(安卓)NotePad的简单实现
  4. Android(安卓)Okhttp3了解及封装类使用
  5. 实战Linux Bluetooth编程(三) HCI层编程
  6. 学习Android闹钟源代码(三)-AlarmClock类分析(part2)
  7. Android基础篇之AutoCompleteTextView
  8. android tabHost使用
  9. Android之智能问答机器人

随机推荐

  1. Android.Bundle savedInstanceState 的意
  2. 基于android平台开发的计算器
  3. Creating Release Keys and Signing Buil
  4. 按返回键返回到主界面
  5. 编译android源码前的准备
  6. android项目中单实例数据库类
  7. IOS 实现android Toast效果
  8. 自定义view之自定义圆角矩形imageview
  9. android 获取本机IP地址
  10. Android实现图片上传