TablelayoutViews внутренние TableRows после вызова subintent
У меня есть форма с большим количеством полей. После вызова нового намерения (камеры) и возврата к основному виду деятельности все поля заполнены. ХОРОШО.
Но tablelayout теряет внутренние TableRows. Зачем? Нет ли способа сохранить скворечники?
tableMaterialObra = (TableLayout)findViewById(R.id.tlMaterialObra);
TableRow tr = new TableRow(this);
CheckBox cb = new CheckBox(this);
tr.addView(cb);
tableMaterialObra.addView(tr);
1 ответ
Решение
Если вы создадите TableLayout в методе oncreate() и не будете ничего делать в методе onResume(), то ни одна строка не будет потеряна
Образец кода
import java.util.ArrayList;
import android.app.ActivityGroup;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class RelativeLayoutTesting extends ActivityGroup implements OnClickListener{
TextView choosenGroup;
android.widget.RelativeLayout currentView = null;
ArrayList<String> logpoint = null;
TableLayout tableMaterialObra;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
// set the relative layout as our view
setContentView(R.layout.my_table);
tableMaterialObra = (TableLayout)findViewById(R.id.my_table);
TableRow tr = new TableRow(this);
tr.setBackgroundColor(Color.WHITE);
CheckBox cb = new CheckBox(this);
tr.addView(cb);
tableMaterialObra.addView(tr);
LinearLayout myLayout = (LinearLayout) findViewById(R.id.my_layout);
myLayout.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(RelativeLayoutTesting.this, com.sunil.MyListView.class));
}
}