Autore Topic: SQLiteDb Android  (Letto 577 volte)

Offline rocco_fun90

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Windows xp
SQLiteDb Android
« il: 22 Febbraio 2013, 11:02:15 CET »
0
Buongiorno,
sto realizzando una piccola app in android in cui inserire in una edit text un testo più uno smiley e visualizzarla in una text view.
Fin qui ci sono riuscito, il problema adesso è memorizzare il contenuto dalla edit text nel db locale, in maniera tale che all'apertura della applicazione carichi nella text view il precedente messaggio più lo smiley.
la funzione con cui inserisco il testo nel db è la seguente
Codice (Java): [Seleziona]
MessaggiDB.insertMessaggio(db, (new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime())),  message.getText().toString());
ovviamente qui sto convertendo attraverso message.getText().toString() un Editable in String.

Quando riapro l'applicazione carico il messaggio memorizzato in questa maniera

Codice (Java): [Seleziona]
Cursor cursor=MessaggiDB.getAllMessaggi(db);
                while(cursor.moveToNext())
                {
                        String data=cursor.getString(1);
                        CharSequence msg=cursor.getString(6);          
                        creaTextViewARuntime(msg, data);
                }

la funzione cre crea la text view al runtime è la seguente
Codice (Java): [Seleziona]
private void creaTextViewARuntime(CharSequence text, String ora)
        {
                TableRow tr= new TableRow(this);
                tr.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT) );
                tr.setGravity(Gravity.RIGHT);
                tr.setPadding(0, 0, 0, 25);
               
               
                LinearLayout layoutmessaggio=new LinearLayout(this);
                layoutmessaggio.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
                layoutmessaggio.setGravity(Gravity.RIGHT);
               
            TextView tv=new TextView(this);        
            tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
            tv.setGravity(Gravity.RIGHT);
            Editable editable = new SpannableStringBuilder(text);
            tv.setText(editable);
            tv.setTextColor(Color.parseColor("#000000"));
            tv.setMaxWidth(350);
            layoutmessaggio.addView(tv);       
           
           
            TextView tvora=new TextView(this);     
            tvora.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
            tvora.setGravity(Gravity.RIGHT|Gravity.BOTTOM);
            tvora.setText(ora);
            //tv.setBackgroundResource(R.drawable.background_sender);
            tvora.setTextColor(Color.parseColor("#000000"));
            tvora.setMaxWidth(350);
            layoutmessaggio.addView(tvora);    
           
            tr.addView(layoutmessaggio);
           
           
            tabellaMessaggi.addView(tr,new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));         
           
        }

In pratica converto nuovamente in Editable il parametrio text ma il risultato è
messaggio ed un quadratino con la scritta obj all'interno.
Come risolvo questo problema?
Chi mi può aiutare?
Ringrazio anticipatamente tutti.