Android actualise une liste de fragments de son activité parente
J'ai une activité principale, qui contient la barre d'action avec 3 boutons de menu.
J'ai alors d'un fragment à l'intérieur de cette activité principale, qui dispose d'une liste.
Je voudrais être en mesure d'actualiser la liste dans le fragment de l'activité principale, lorsque l'un des boutons de menu est cliqué, ou, de préférence, juste enlevé toutes les lignes de la liste.
Toute aide est appréciée.
Grâce.
public class Favourite extends SherlockFragmentActivity {
ActionBar actionBar;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.favourite);
actionBar = getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(false);
BitmapDrawable bg = (BitmapDrawable)getResources().getDrawable(R.drawable.actionbar_bg);
bg.setTileModeX(TileMode.REPEAT);
getSupportActionBar().setBackgroundDrawable(bg);
getSupportActionBar().setIcon(R.drawable.favourite_title);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tabAll = actionBar.newTab();
ActionBar.Tab tabfavs = actionBar.newTab();
ActionBar.Tab tabhist = actionBar.newTab();
tabAll.setText("all");
tabfavs.setText("favs");
tabhist.setText("hist");
tabAll.setTabListener(new MyTabListener());
tabfavs.setTabListener(new MyTabListener());
tabhist.setTabListener(new MyTabListener());
actionBar.addTab(tabAll);
actionBar.addTab(tabfavs);
actionBar.addTab(tabhist);
try{
}
catch(Exception e)
{
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.actionbar_itemlist_favourite, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.history:
break;
case R.id.favourite:
Intent favAct = new Intent(this, Favourite.class);
startActivity(favAct);
break;
case R.id.delete:
///I WANT TO BE ABLE TO REFRESH FRAGMENTLIST FROM HERE
}
return true;
}
}
class MyTabListener implements ActionBar.TabListener {
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(tab.getPosition()==0)
{
FavouriteAllWords frag = new FavouriteAllWords();
ft.replace(android.R.id.content, frag);
}
else if(tab.getPosition()==1)
{
FavouriteFavWords frag = new FavouriteFavWords();
ft.replace(android.R.id.content, frag);
}
else if(tab.getPosition()==2)
{
FavouriteHistWords frag = new FavouriteHistWords();
ft.replace(android.R.id.content, frag);
}
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
//TODO Auto-generated method stub
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
//TODO Auto-generated method stub
}
}
////////////////////MA LISTE FRAGMENT DE CLASSE
public class FavouriteAllWords extends ListFragment {
ArrayAdapter<String> adapter;
List<String> stringOfFavWords;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved)
{
adapter = new ArrayAdapter<String>(
inflater.getContext(), R.layout.row, stringOfFavWords);
setListAdapter(adapter);
return super.onCreateView(inflater, group, saved);
}
@Override
public void onActivityCreated (Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
}
}
source d'informationauteur user1319668
Vous devez vous connecter pour publier un commentaire.
Vous pouvez facilement réaliser cela en utilisant l'INTERFACE
MainActivity.java
MyFragment.java
OU
Communiquer avec d'Autres Fragments de
http://developer.android.com/training/basics/fragments/communicating.html
Cela peut également être utilisé pour communiquer entre une Activité et un Fragment.
Lorsque vous cliquez sur l'ActionBar tout sur le Bouton d'appel de l'interface pour actualiser la ListFragment. Parce que dans l'interface java est utilisé pour la communication.
Biraj Zalavadia de réponse est de 100% à droite, vous appeler nay fragment méthodes de l'aide de l'interface....
cette interface méthodes est en cours d'exécution sans erreur...
l'utiliser dans MainActivity ci-dessus oncreate
privé FragmentRefreshListener fragmentRefreshListener;
à l'intérieur de l'Activité
et mettre ceci dans le Fragment nécessaire