У меня есть 3 tabfragments, прикрепленных к табусту, когда я помещаю данные в текстовое представление, а затем я выбираю другую вкладку, данные первой вкладки стираются, но я понимаю, что когда я выберите вкладку, которую перезагружает фрагмент.tabfragment перезагружается каждый раз, когда я выбираю вкладку
Мой вопрос в том, как я могу выбрать вкладку без перезагрузки ее содержимого? Значения textview очищаются, когда я выбираю одну и ту же вкладку после выбора другой вкладки.
Основной вид деятельности, где я создал все вкладки
private void initTabs()
{
boolean createDoneActivityBtn = true;
thMain = (FragmentTabHost) findViewById(R.id.thMain);
thMain.setup(this, getSupportFragmentManager(), R.id.flTabContent);
thMain.addTab(thMain.newTabSpec("AddLabourCropFieldTab").setIndicator("Cultivos")
, AddLabourCropFieldTab.class , null);
thMain.addTab(thMain.newTabSpec("AddLabourDoneActivityTab").setIndicator("Info. General")
, AddLabourDoneActivityTab.class , null);
if( activityName.equals("Riego"))
{
thMain.addTab(thMain.newTabSpec("AddLabourIrrigationTab").setIndicator("Info. de Riego")
, AddLabourIrrigationTab.class , null);
}
if( activityName.equals("Siembra"))
{
thMain.addTab(thMain.newTabSpec("AddLabourSowingTab").setIndicator("Info. de Siembra")
, AddLabourSowingTab.class, null);
}
if( activityName.equals("Fertilizacion"))
{
thMain.addTab(thMain.newTabSpec("AddLabourInputTab").setIndicator("Info. de Insumo")
, AddLabourInputTab.class, null);
}
}//
первая закладка,
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
this.setRetainInstance(true);
initCropFieldTabContent();
}//
private void initCropFieldTabContent()
{
AddLabour act = (AddLabour) getActivity();
AlertDialog.Builder builder = new AlertDialog.Builder(act);
builder.setTitle("A que cultivos se aplicara la labor?");
List<CustCropField> cropFieldList = CustCropField.listAll(CustCropField.class);
Log.d("initcrop", " valor del listado " + cropFieldList.size());
ListAdapter cropfieldAdapter =
new ArrayAdapter(act.getApplicationContext() , R.layout.spinner_row, cropFieldList);
//lvCropfield = (ListView)act.findViewById(R.id.lvCropfield);
lvCropfield = new ListView(act);
try
{
lvCropfield.setAdapter(cropfieldAdapter);
lvCropfield.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lvCropfield.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
CustCropField ccf = (CustCropField) parent.getItemAtPosition(position);
Log.d("lvpersonal","click al item: "+position+" nombre: "+ccf.toString());
if (cropFieldSelected.contains(ccf))
{
cropFieldSelected.remove(ccf);
Log.d("lvpersonal","removido crop "+ccf.getName());
}
else
{
cropFieldSelected.add(ccf);
Log.d("lvpersonal","agregado crop"+ccf.getName());
}
showTextViewContent(R.id.tvCropFieldList);
}//
});
lvCropfield.setVisibility(View.VISIBLE);
}
catch(Exception e)
{
Log.e("error inp act"," error en activityinput-> "+e.getMessage());
}
builder.setView(lvCropfield);
cropDialog = builder.create();
//aqui el otro listado (el de personal)
builder = new AlertDialog.Builder(act);
builder.setTitle("personal que aplicara la labor?");
List<Personal> personalList = Personal.listAll(Personal.class);
ListAdapter personalAdapter =
new ArrayAdapter(act.getApplicationContext() , R.layout.spinner_row, personalList);
//lvPersonal = (ListView)act.findViewById(R.id.lvPersonal);
lvPersonal = new ListView(act);
try
{
lvPersonal.setAdapter(personalAdapter);
lvPersonal.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lvPersonal.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Personal per = (Personal) parent.getItemAtPosition(position);
Log.d("lvpersonal","click al item: "+position+" nombre: "+per.toString());
// CustCropField CCF = (CustCropField) parent.getItemAtPosition (положение); // Log.d ("lvpersonal", "click al item:" + position + "nombre:" + ccf.toString());
if (personalSelected.contains(per))
{
personalSelected.remove(per);
Log.d("lvpersonal","removido personal "+per.getName());
}
else
{
personalSelected.add(per);
Log.d("lvpersonal","agregadp personal "+per.getName());
}
showTextViewContent(R.id.tvPersonalList);
}//
});//onitemclicklistener
lvPersonal.setVisibility(View.VISIBLE);
}
catch(Exception e)
{
Log.e("error inp act"," error en activityinput-> "+e.getMessage());
}
builder.setView(lvPersonal);
personalDialog = builder.create();
personalBtn = (Button)act.findViewById(R.id.personalBtn);
personalBtn.setOnClickListener(this);
cropfieldBtn = (Button)act.findViewById(R.id.cropfieldBtn);
cropfieldBtn.setOnClickListener(this);
//se crean los listados de los items seleccionados
cropFieldSelected = new ArrayList<>();
personalSelected = new ArrayList<>();
tvCropFieldList = (TextView)act.findViewById(R.id.tvCropFieldList);
tvPersonalList = (TextView)act.findViewById(R.id.tvPersonalList);
//se pasan las listas con los campos y personal
//seleccionados a la actividad principal
act.setCcfList(cropFieldSelected);
act.setPerList(personalSelected);
}//
я читал, что, но им не использовать ViewPager, только tabhost, и я игнорировать, если tabhost реализует ViewPager и как его получить, –