2011-10-07 4 views
0

Salut, je fais application de devis simple qui citations d'affichage. J'ai les citations dans la base de données sqlite. J'ai deux bouton "suivant" et "précédent" lorsque l'utilisateur a frappé à côté de la prochaine citation devrait afficher et et quand frappé précédent les citations précédentes devraient afficher. La base de données fonctionne très bien, mais je suis bloqué sur la façon de changer le texte de textView.I essayé certaines choses, mais ils ne fonctionnent pas correctement. Une suggestion ou une aide? citations comme des blagues, des proverbes, etc.comment changer le texte de la texview en android

+0

ur question ne sait pas ... qui cite ur parler exemple donne vers tout ce que tu veux afficher, THN ppl peut aider u out ... – Richa

+0

problème résolu de http://androidlearningbegin.blogspot.com/2011/10/android-application-to-connect-to-your.html – Sunny

Répondre

0

I m Tring ce ça marche mais quand je clique à côté, le texte précédent ne disparaît pas. Que faire?

  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    tv=(TextView)findViewById(R.id.text); 
    next=(Button)findViewById(R.id.next); 
    back=(Button)findViewById(R.id.back); 
next.setOnClickListener(this); 
back.setOnClickListener(this); 

    try { 
     db=new DbH(this); 
    } catch (IOException e2) { 

     e2.printStackTrace(); 
    } 


     try { 
      db.createdatabase(); 
     } catch (IOException e) { 

      e.printStackTrace(); 
     } 

    db.opendatabase(); 
    cur=db.data(); 
    cur.moveToFirst(); 


//int i=0; 

    tv.append(cur.getString(1)); 

cur.moveToNext(); 

// cur.close();

} @Override public void onClick (Voir v) {

switch(R.id.next) 
{ 
case R.id.next : 
    cur.moveToNext(); 
    tv.append(""+cur.getString(1)); 
break; 
case R.id.back: 
{ 
    cur.moveToPrevious(); 
    tv.append(""+cur.getString(1)); 
    break; 
} 

} 
+0

problème résolu grâce à tout le monde. – Sunny

0

Jetez un oeil à http://developer.android.com/reference/android/widget/TextView.html

Utilisez onClickListeners sur vos boutons. Lorsque l'utilisateur appuie sur le bouton vous allez chercher le texte approprié à partir de la base de données et l'afficher par exemple en utilisant setText(CharSequence text)

+0

while (cur.isAfterLast() == false) { \t tv.append ("\ t \ t" + getString (2)); \t onClick (retour); \t onClick (suite); } cur.close(); est-ce correct? J'ai implémenté c.moveToNext et c.moveToPrevious dans la méthode onClick. – Sunny

+0

tv.setText ("\ t \ t" + getString (2)); Ferait.Ou voulez-vous garder les anciens? Puis ajouter devrait faire. Regardez les documents: public final void append (texte CharSequence) Depuis: API Niveau 1 Méthode pratique: Ajoute le texte spécifié au tampon d'affichage de TextView, en le mettant à niveau vers BufferType.EDITABLE s'il n'était pas déjà éditable. –

0

Pour modifier le texte de textview:

textview.setText("your text"); 

si vous obtenez une exception en modifiant le texte alors essayez de le faire avec l'aide de handler.

1

d'abord chercher toutes les citations et stocker dans le Arraylist ou tout autre objet équivalent utilisent maintenant un objet de compteur qui permettra de suivre la position actuelle et l'initialiser avec 0 si vous obtenez la citation plus égale à 1

maintenant la vérification suivante bouton première valeur de compteur est égale à la taille de arraylist puis ne rien faire autrement augmenter de 1 et obtenir la prochaine citation du arraylist

if(counter==-1) 
    return; 

if(counter==array.size()-1) 
    return 

counter++; 
yourtextview.setText(array.get(counter)); 

faire les mêmes choses dans le précédent, dans ce counter-- au lieu de compteur ++

Modifier sans objet arraylist et compteur objet

contrôle le curseur en utilisant moveNext() et movePrevious() comme pour le prochain contrôle

if(cursor.moveNext()) 
     yourtextview.setText(coursor.getString(yourcolumnindex)); 

et dans les précédents

if(cursor.movePrevious()) 
     yourtextview.setText(coursor.getString(yourcolumnindex)); 
+0

est-il juste de charger toute la base de données dans arraylist.i plutôt que de le faire à l'aide de requêtes. – Sunny

+0

il est préférable d'exécuter plusieurs requêtes ou vous pouvez faire je pense que chercher toutes les données et utiliser l'objet curseur lui-même au lieu de l'objet arraylist – Pratik

+0

vérifier mise à jour post – Pratik

Questions connexes