как изменить текст texview в андроиде - PullRequest
0 голосов
/ 07 октября 2011

Привет, я делаю простое приложение, которое отображает цитаты. У меня есть цитаты в базе данных sqlite. У меня есть две кнопки «следующий» и «предыдущий» когда пользователь нажимает следующую, должна отображаться следующая цитата, а при нажатии предыдущей должны отображаться предыдущие цитаты. База данных работает нормально, но я застрял в том, как изменить текст textView. Я пробовал некоторые вещи, но они не работают должным образом. Любое предложение или помощь? цитаты, такие как шутки, пословицы и т. д.

Ответы [ 4 ]

1 голос
/ 07 октября 2011

сначала извлекайте все кавычки и сохраняйте их в Arraylist или любом другом эквивалентном объекте, теперь используйте один объект-счетчик, который будет отслеживать текущую позицию и инициализировать ее 0, если вы получите кавычку, превышающую 1

теперь при следующей кнопке проверьте, что первое значение счетчика равно размеру массива, затем ничего не увеличивайте, увеличьте на 1 и получите следующую цитату из массива

if(counter==-1)
    return;

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

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

делать то же самое с предыдущим, в этом счетчике - вместо счетчика ++

Редактировать без массива объекта и счетчика объекта

проверить курсор, используя moveNext () и movePrevious (), как для следующей проверки

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

и в предыдущем

   if(cursor.movePrevious())
       yourtextview.setText(coursor.getString(yourcolumnindex));
0 голосов
/ 07 октября 2011

Я считаю, что это работает, но когда я нажимаю дальше, предыдущий текст не исчезает. Что делать?

           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 (View 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 голосов
/ 07 октября 2011

Чтобы изменить текст textview:

textview.setText("your text");

если вы получаете какое-либо исключение при изменении текста, попробуйте сделать это с помощью handler.

0 голосов
/ 07 октября 2011

Посмотрите на http://developer.android.com/reference/android/widget/TextView.html

Используйте onClickListeners на ваших кнопках.Когда пользователь нажимает кнопку, вы выбираете соответствующий текст из базы данных и отображаете его, например, с помощью setText (CharSequence text)

...