我有一个异步任务,并且正在进行更新我将文本设置为 TextView,这工作正常,但随后我旋转屏幕,textview 重置并设置“”(这是初始值),在更新后我有一个新的 findviewbyid( r.id.tvProgreso); 它会更新文本视图,但文本将是相同的。
这是我的 onCreate 方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_incio);
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.HONEYCOMB_MR2) {
ActionBar actionBar = getActionBar();
actionBar.hide();
}
contexto = getApplicationContext();
datos = new ArrayList<Integer>();
recojeDatosDeSesion(savedInstanceState);
adaptador = new AdaptadorImagenes(contexto);
if (getLastNonConfigurationInstance() != null) {
adaptador = (AdaptadorImagenes) getLastNonConfigurationInstance();
}
// Layout
etEmail = (EditText) findViewById(R.id.etEmail);
etPassword = (EditText) findViewById(R.id.etPassword);
tvProgreso = (TextView) findViewById(R.id.tvProgreso);
listaHorizontalImagenes = (Gallery) findViewById(R.id.galeria);
listaHorizontalImagenes.setGravity(Gravity.LEFT);
listaHorizontalImagenes.setAdapter(adaptador);
listaHorizontalImagenes.setSelection(0);
btnDescargar = (Button) findViewById(R.id.btnDescargar);
clickDescargar = new OnClickListener() {
@Override
public void onClick(View v) {
if (!descargaActiva) {
email = etEmail.getText().toString();
password = etPassword.getText().toString();
if (validaDatos(email, password)) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
new DescargaFotos().execute();
descargaActiva = true;
Toast.makeText(contexto, "Comienza la descarga.", Toast.LENGTH_SHORT).show();
tvProgreso.setText("Descargando fotos..");
}
} else {
Toast.makeText(contexto, "Descarga en proceso", Toast.LENGTH_LONG).show();
}
}
};
if (descargaActiva)
btnDescargar.setOnClickListener(null);
else
btnDescargar.setOnClickListener(clickDescargar);
}
和 asyntask 中的 progressUpdate
@Override
protected void onProgressUpdate(Integer... progreso) {
// Actualizo el progreso
progresoImagenes = progreso[0];
actualizaTexto(progreso[0]);
adaptador.addItem(progreso[0]);
}
private void actualizaTexto(Integer progreso) {
tvProgreso = (TextView) findViewById(R.id.tvProgreso);
tvProgreso.setText(progreso.toString() + " de " + numeroDeFotos + " fotos.");
}
当我调试时,我看到 textviex.settext 带有正确的文本,但这不会改变..