2010-09-16 3 views
1

Я работаю с линейным расположением, и я пытаюсь изменить текст TextView, но он не обновляется. Когда я отлаживаю, я проверял, что текст изменился правильно.Android - изменение textView во время выполнения

Благодаря

public class Position extends Activity { 
Button botonempezar; 
Button botonsalir; 
TextView text; 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.position); 
     botonsalir = (Button) findViewById(R.id.salir); 
     botonempezar = (Button) findViewById(R.id.Empezar); 
     text = (TextView) findViewById(R.id.Textoposicion); 
     botonsalir.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      onDestroy(); 
      finish(); 
      } 
     }); 
     botonempezar.setOnClickListener(new View.OnClickListener() { 
       @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       searchPosition();  
      } 
     }); 
    } 
    private void searchPosition(){ 
     boolean condition = true; 
     do{ 
      determinatePosition(); 
     }while(condition == true); 
    } 

    private void determinatePosition(){ 
      .... 
     this.text.setText("New text"); 
     //this.text.invalidate(); 
     this.text.postInvalidate(); 
     Toast.makeText(getBaseContext(), "New text", Toast.LENGTH_SHORT);// this doesnt work neither. 
     .... 
    } 

Здесь я выкладываю код файла XML. Его действительно глупо, но это может быть проблема:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 


    <TextView 
     android:layout_height="wrap_content" 
     android:id="@+id/Textoposicion" 
     android:text="Posición desconocida" 
     android:layout_width="fill_parent" 
     android:layout_marginTop="20dip" 
     android:inputType="text"> 
    </TextView> 
    <Button android:layout_height="wrap_content" 
     android:id="@+id/Empezar" android:text="Empezar" 
     android:layout_width="fill_parent" 
     android:layout_marginTop="20dip"> 
    </Button> 
    <Button 
     android:layout_height="wrap_content" 
     android:id="@+id/salir" 
     android:layout_marginTop="20dip" 
     android:text="Finalizar programa" 
     android:gravity="center" android:layout_width="fill_parent"> 
    </Button> 


</LinearLayout> 

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

ответ

0

Не пытайтесь использовать getBaseContext(). Используйте Position.this

Ну теперь ваш бесконечный цикл вызывается


    private void searchPosition(){ 
     boolean condition = true; 
     do{ 
      determinatePosition(); 
     }while(condition == true); 
    } 

Попробуйте переместить тост в public void onClick(View v)

Кроме того, показывают нам ваши импорт

+0

Я пробовал, и он тоже не работает. Любая другая идея? Это может быть связано с файлом position.xml? – Miguel

1

Вы забыли вызвать show() метод на Тост:). Попробуйте следующее:

Toast.makeText(getBaseContext(), "New text", Toast.LENGTH_SHORT).show(); 
Смежные вопросы