Autore Topic: (smileys) Problema con Html.fromHtm  (Letto 424 volte)

Offline x69asterix2

  • Utente junior
  • **
  • Post: 127
  • Respect: +1
    • Mostra profilo
(smileys) Problema con Html.fromHtm
« il: 11 Ottobre 2014, 15:15:04 CEST »
0
Allora premetto che questo codice funziona, ma esiste un problema
cioè se passo come stringa smiley1 fino a smiley9 gli smiles vengono
visualizzati, ma appena passo una stringa esempio smiley10 questa
viente interpretata come smiley1
Perchè; 
Codice: [Seleziona]
        @Override
        public Drawable getDrawable(String source) {
                Drawable d = null;
            int resID = this.getResources().getIdentifier(source,
                          "drawable", this.getPackageName());
            d = this.getApplicationContext().getResources().getDrawable(
            resID);
            d.setBounds(0, 0, 40,40);
            return d;

        }

        @Override
        public void onClick(View arg0) {
                String source = replaceEmoticons(editText.getText().toString());
                Spanned spanned = Html.fromHtml(source, this, null);
                textView.setText(spanned);
   
        }
       
        protected String replaceEmoticons(String source) {


        source = source.replace(":-smiley01", "<img src='smiley01' />");
        source = source.replace(":-smiley02", "<img src='smiley02' />");
        source = source.replace(":-smiley03", "<img src='smiley03' />");
        source = source.replace(":-smiley04", "<img src='smiley04' />");
        source = source.replace(":-smiley05", "<img src='smiley05' />");
        source = source.replace(":-smiley06", "<img src='smiley06' />");
        source = source.replace(":-smiley07", "<img src='smiley07' />");
        source = source.replace(":-smiley08", "<img src='smiley08' />");
        source = source.replace(":-smiley09", "<img src='smiley09' />");
        source = source.replace(":-smiley10", "<img src='smiley10' />");
        return source;

    }

Offline alfy91

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +2
    • @piscitelli91
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Sistema operativo:
    Windows 8
Re:(smileys) Problema con Html.fromHtm
« Risposta #1 il: 12 Ottobre 2014, 11:03:59 CEST »
0
Mi sembra molto strano, anche perché utilizzando il prefisso 0 ai primi nove smile il decimo non è prefisso del primo...
comunque prova ad anticipare la sostituzione del decimo al primo.
Il codice sembra corretto.

Offline marco4098

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxys2
  • Sistema operativo:
    win8
Re:(smileys) Problema con Html.fromHtm
« Risposta #2 il: 13 Ottobre 2014, 11:52:09 CEST »
0
Il codice sembra corretto, la butto li dato che a volte io in primis faccio errori sciocchi...hai ricontrollato le immagini caricate?la 1 e la 10 sono sicuro diverse?

Offline x69asterix2

  • Utente junior
  • **
  • Post: 127
  • Respect: +1
    • Mostra profilo
Re:(smileys) Problema con Html.fromHtm
« Risposta #3 il: 14 Ottobre 2014, 11:20:49 CEST »
0
Ciao e scusate per il ritardo.
Allora il problema riguardava la numerazione degli smiley!
ho circa 900 smiley e ho dovuto cambiare la numerazione
in questo formato smiley001
adesso tutto ok.

Adesso ho un problema e sinceramente non riesco a venirne fuori
praticamente ho un'edittext popolata sia da stringhe che da smiley
le stringhe sono li chiaramente ma per quanto riguarda gli smiley
si li vedo ma in codice come ottengo una stringa html stile ricthtext?

il codice
Codice: [Seleziona]
private void addImageBetweentext(Drawable drawable,String imageResource2) {
        drawable.setBounds(0, 0, 40, 40);

        final EditText edt =(EditText)findViewById(R.id.edtMsg);
        int selectionCursor = edt.getSelectionStart();
        edt.getText().insert(selectionCursor, ",");
        selectionCursor = edt.getSelectionStart();

       SpannableStringBuilder builder = new SpannableStringBuilder(edt.getText());
        builder.setSpan(new ImageSpan(drawable), selectionCursor - ".".length(), selectionCursor, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

        edt.setText(builder);
        edt.setSelection(selectionCursor);