代码之家  ›  专栏  ›  技术社区  ›  Izzy Stannett

BulletSpan不添加项目符号

  •  -1
  • Izzy Stannett  · 技术社区  · 7 年前

    对于上下文,对象mModule包含一个名为项目符号的字符串RealmList,我试图将项目符号指向的字符串组设置为“thingsToTv”。

      StringBuilder sb = new StringBuilder();
    
            for(int i = 0; i < mModule.getBullets().size(); i++){
                String stringB = "\r\n" + mModule.getBullets().get(i);
                SpannableString string = new SpannableString(stringB);
                string.setSpan(new BulletSpan(), 0, stringB.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                Log.d(TAG, "String: " + string);
                sb.append(stringB);
            }
    
            thingsToTv.setText(sb);
    

    2 回复  |  直到 7 年前
        1
  •  1
  •   Barns    7 年前

    我不熟悉 RealmList 但是如果它像一个 ArrayList 然后你可以试试这个:

    SpannableString spanString;
    
    private void testSpanBullet(){
        String sep = System.lineSeparator();
    
        ArrayList<String> list = new ArrayList<>();
        list.add("Test 1");
        list.add("Test 2");
        list.add("Test 3");
        list.add("Test 4");
    
        StringBuilder sb = new StringBuilder();
    
        for(String s : list){
            sb.append(sep + s);
        }
    
        String concat = sb.toString();
        spanString = new SpannableString(concat);
    
        for(String s : list){
            addBullet(s, concat);
        }
    
        textView.setText(spanString);
    }
    
    private void addBullet(String s, String txt){
        int index = txt.indexOf(s);
        // You can change the attributes as you need ... I just added a bit of color and formating
        BulletSpan bullet = new BulletSpan(20, Color.RED);
        spanString.setSpan(bullet, index, index+1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    



    注:
    只有在 现实主义者

    如果 现实主义者 不允许 foreach for 像在代码中一样循环 for(int i = 0; i < mModule.getBullets().size(); i++)

        2
  •  0
  •   Daniel Beleza    7 年前

    在textview上设置文本时,请尝试使用以下代码。

    thingsToTv.setText(sb);
    

    试试这个

    thingsToTv.setText(sb, BufferType.SPANNABLE);