Sorunun cevabını yine ben vereyim neden bu ara bu portal bu kadar pasif anlayamadım:)
Global olarak bir int değişken tanımlayıp o esnada seçili olan tab'ın indexini tutmamız lazım bu bize çok lazım olacak.
[code]int selectedPosition;[/code]
Buna değeri nerede atacağız derseniz onTabSelected eventinde yapacağız.
[code]
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
mainScreenPager.setCurrentItem(tab.getPosition());
selectedPosition = tab.getPosition();
}
[/code]
Şimdi fragmentlerde update yapmak için bi interface yazalım ve fragmentleri ondan implemetasyon edelim.
[code]
public interface UpdateData {
public void updateData();
}
[/code]
fragmentimiz şöyle olacak.
[code]
public class FavoriteUserListFragment extends Fragment implements UpdateData {
..
.
.
.
private final Handler uiHandler = new Handler() {
};
@Override
public void updateData() {
Runnable visuals = new Runnable() {
@Override
public void run() {
uiHandler.post(new Runnable() {
@Override
public void run() {
userListAdapter.notifyDataSetChanged();
}
});
}
};
new Thread(visuals).start();
}
}
[/code]
... koyduğum yerlerde diğer kodlarınız var.bu updateData methodu arka taraftan tetiklendiğinde listview yenilenmesi için adapteri refresh ediyorum.
Şimdi bunu naasıl tetikleteceğiz onuda görelim.Activity içerisinde olay gerçekleştiğinde
[code]
FavoriteUserListFragment favoriteUserListFragment = (FavoriteUserListFragment)mainScreenTabsPagerAdapter.instantiateItem(mainScreenPager,selectedPosition);
if(favoriteUserListFragment!=null){
favoriteUserListFragment.updateData();
}
[/code]
tabspagerden fragment'i döndürüp ordaki methoduda bu şekilde tetiklettik.
İhtiyacı olan arkadaşlar yararlanabilir.