Buenas,
a ver os cuento. Tengo una asignatura de Procesos Software en la que sin razon alguna nos ha mandado una aplicacion en plan comunio en android y el no nos enseña absolumente nada ni nos responde preguntas.
Por ahora llevo hecho un login y su registrar, que te llevan a un menu con distintas pestañas y tal. Una de ellas es "Equipo" y esta junto su layout crean 3 Tabs(Once, Plantilla y En Venta) y en cada Tab tengo asignado un <Fragment> con el correspondiente fragment.
Aqui vienen las dudas:
En la Tab de Plantilla he hecho una listview con elementos simples por ahora para ir probando, al apretar en ellos se despliega un menu con distintas opciones, una de ellas "Poner en venta". La idea es que cuando lo da, guarda ese elemento en un arraylist estatico (mas adelante se hara con BBDD). Entonces una vez cambias al Tab "En Venta" me carga ese arraylist en otra listView, PERO si vuelvo a poner algun jugador en venta y mira dicha tab no se actualiza. ¿Alguna idea de que podria hacer o buscar para implementarlo?
Otra cosa que me pasa es que si entro el menu 2 veces en la seccion "Equipo" (esta relacionada con lo anterior) crashea. He probado a quitar las clases de las Tabs y añadir unas basicas por si eran estas las que creaban algun conflicto y no, es la clase de Equipo que se encarga de iniciar las tabsm y ahora mismo no se me ocurre porque puede fallar.
Seccio de Equipo que crea las pestañaspublic class FnTabEquipos extends Fragment{
//TextView titulo;
ListView list;
ArrayAdapter<String> adapter;
ArrayList<String> lista;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.lay_tabequipos, container, false);
Resources res= getResources();
TabHost tabs = (TabHost) rootView.findViewById(R.id.tabHost);
tabs.setup();
TabHost.TabSpec spec = tabs.newTabSpec("Pestaña 1");
spec.setContent(R.id.tab1);
spec.setIndicator("Equipo", res.getDrawable(android.R.drawable.bottom_bar));
tabs.addTab(spec);
tabs.setup();
TabHost.TabSpec spec2 = tabs.newTabSpec("Pestaña 1");
spec2.setContent(R.id.tab2);
spec2.setIndicator("Plantilla", res.getDrawable(android.R.drawable.bottom_bar));
tabs.addTab(spec2);
tabs.setup();
TabHost.TabSpec spec3 = tabs.newTabSpec("Pestaña 1");
spec3.setContent(R.id.tab3);
spec3.setIndicator("En venta", res.getDrawable(android.R.drawable.bottom_bar));
tabs.addTab(spec3);
return rootView;
}
}
Tab2Plantillapublic class FnTab2Plantilla extends Fragment implements View.OnClickListener {
ListView list;
ArrayAdapter<String> adapter;
ArrayList<String> lista;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.lay_tab2plantilla, container, false);
lista = new ArrayList<String>();
//titulo.setText("Mis Jugadores");
list = (ListView) rootView.findViewById(R.id.listPlantilla);
lista.add("Cristiano Ronaldo");
lista.add("Leo Messi");
lista.add("Luis Suarez");
lista.add("Pedro Leon");
lista.add("Fernando Torres");
lista.add("Keylor Navas");
adapter = new ArrayAdapter<String>(this.getActivity() ,android.R.layout.simple_list_item_1, android.R.id.text1, lista);
list.setAdapter(adapter);
//list.addHeaderView(titulo);
registerForContextMenu(list);
return rootView;
}
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getActivity().getMenuInflater();
AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo)menuInfo;
menu.setHeaderTitle(
list.getAdapter().getItem(info.position).toString());
inflater.inflate(R.menu.menu_tab2plantilla, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.etq1Informacion:
Toast.makeText(getActivity(), "Jugador = "+lista.get(info.position), Toast.LENGTH_LONG).show();
return true;
case R.id.etq2Colocar:
Toast.makeText(getActivity(), "Colocar", Toast.LENGTH_LONG).show();
return true;
case R.id.etq3Venta:
Act_Principal.addJug_venta(lista.get(info.position));
Toast.makeText(getActivity(), lista.get(info.position) + " puesto en Venta", Toast.LENGTH_LONG).show();
return true;
default:
return super.onContextItemSelected(item);
}
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getActivity().getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
switch (v.getId()){
/*case R.id.bLogout:
startActivity(new Intent(this, Login.class));
break;*/}
}
}
Tab3 EnVentapublic class FnTab3Venta extends Fragment implements View.OnClickListener {
ListView list;
ArrayAdapter<String> adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.lay_tab3venta, container, false);
//titulo.setText("Mis Jugadores");
list = (ListView) rootView.findViewById(R.id.listVenta);
adapter = new ArrayAdapter<String>(this.getActivity() ,android.R.layout.simple_list_item_1, android.R.id.text1, Act_Principal.getJug_venta());
list.setAdapter(adapter);
//list.addHeaderView(titulo);
return rootView;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
switch (v.getId()){
/*case R.id.bLogout:
startActivity(new Intent(this, Login.class));
break;*/}
}
}
La forma en la "Equipo" las llamas es mediante <Fragment> en el layout
No busco que me deis la solucion exacta si no quereis, simplemente algo de ayuda de por donde tirar porque no tengo ni idea.
PD: Alguna parte esta hecha por mi compañero como los "onClick" y alguna cosa mas.
PD2: En mi vida he dado Android asi que seguramente si teneis idea veais fallos o cosas que no tienen mucho sentido