Ich habe 3 Tabfragmente an einen Tabhost angehängt, wenn ich Daten in eine Textansicht und dann wähle ich eine andere Registerkarte, die Daten der ersten Registerkarte gelöscht wird, aber ich erkenne, dass wenn ich Wählen Sie eine Registerkarte, die das Fragment neu lädt.Tabfragment wird jedes Mal neu geladen ich die Registerkarte
Meine Frage ist, wie kann ich eine Registerkarte auswählen, ohne den Inhalt neu zu laden? Die Werte der Textansicht werden gelöscht, wenn ich dieselbe Registerkarte nach Auswahl einer anderen Registerkarte auswähle.
Haupttätigkeit, wo ich alle Registerkarten erstellt
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);
}
}//
ersten Register
@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 (Position); // Log.d ("lvpersonal", "klick auf alle Elemente:" + 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);
}//
ich habe gelesen, dass, aber im mit ViewPager nicht nur TabHost, und ich ignorieren, wenn TabHost viewPager implementiert und wie es zu bekommen, –