Как я новичок в андроид я застрял в какой-то момент в процессе реализации ActionBarTab с swipable ViewPager с использованием фрагментовКак передать фрагмент в MainActivity в android?
У меня есть 3 вкладки, каждая с некоторыми элементами управления последняя вкладка будет представлять все данные вкладки в одну таблицу я перемещаться по следующей кнопка и события изменения вкладка
с помощью следующей вкладки я могу установить данные в объект класса с помощью геттер/сеттер и я представить, что данные класса в таблице БД для сохранения ..
теперь я хочу назвать тот же метод а на вкладке изменение событие способ SetdataToModelClass()
Как назвать тот же метод на событие изменения вкладки, которые уже называют на события нажатия кнопки, так что если пользователь перемещаться по вкладкам вместо следующей кнопки и изменить какие-либо данные Мой SetdataToModelClass() называется
SetdataToModelClass в каждом фрагменте, где, как мое событие изменения Tab находится в классе MainFragmentActivity так как вызвать SetdataToModelClass() метод на событие изменения вкладки (т.е. хотите иметь связь между MainFragment Act & фрагмент)
Код для MainActivity класса здесь:
public class TestFragmentTabHost extends FragmentActivity implements TabListener {
ViewPager vp;
ActionBar ab;
SalesActivity sa = new SalesActivity();
SessionManager session = null;
String usrNm = null;
String szImeiId = null;
Spinner spnAECust;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabhost_act);
/* Action Bar Color change on create*/
ActionBar actionBar = getActionBar();
ActionBarColor.setBackgroundColor(actionBar);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setTitle(Html.fromHtml("<font color=\"white\" face=\"verdana,arial\">" + getString(R.string.air) + "</font>"));
// Session Manager
session = new SessionManager(getApplicationContext());
/* To Get Unique Device id */
TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
szImeiId = TelephonyMgr.getDeviceId(); // Requires READ_PHONE_STATE.
// get User Details from Session
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap = session.getUserDetails();
usrNm = hashMap.get(SessionManager.KEY_USRNM);
vp = (ViewPager) findViewById(R.id.pager);
vp.setAdapter(new MyPageAdapter(getSupportFragmentManager()));
ab = getActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab1 = ab.newTab();
tab1.setText("INFO");
tab1.setTabListener(this);
ActionBar.Tab tab2 = ab.newTab();
tab2.setText("PORT");
tab2.setTabListener(this);
ActionBar.Tab tab3 = ab.newTab();
tab3.setText("PACKAGES");
tab3.setTabListener(this);
ab.addTab(tab1);
ab.addTab(tab2);
ab.addTab(tab3);
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
vp.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
// For Page adapter
class MyPageAdapter extends FragmentPagerAdapter {
public MyPageAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int arg0) {
Fragment frgmnt = null;
if (arg0 == 0) {
frgmnt = new InfoFragment();
}else if (arg0 == 1) {
frgmnt = new PortFragment();
}else if (arg0 == 2) {
frgmnt = new PackagesFragment();
}
return frgmnt;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 3;
}
}
public void setSalesInfoData(List<String> sales) {
while (sales.size() > 0) {
sa.setCustomerId(Integer.parseInt(sales.get(0).toString()));
sa.setProspectId(Integer.parseInt(sales.get(1).toString()));
sa.setCommodityId(Integer.parseInt(sales.get(2).toString()));
sa.setSpecialNotes(sales.get(3));
sa.setLob(sales.get(4));
DateFormat dt = new DateFormat();
Date crTs = dt;
sa.setCrTs(crTs);
sa.setCrUsr(usrNm);
sa.setDeviceId(szImeiId);
break;
}
}
используя метод УстановитьДанные к классу SalesActivity
вы должны использовать интерфейс в качестве обратного вызова к деятельности. проверить связь с активностью @ http://developer.android.com/guide/components/fragments.html – Raghunandan
, лучшим способом всегда будет использование интерфейса, например, предложенного Р.Рагунанданом. Но вы также можете просто получить ссылку на свою деятельность во Фрагменте и вызвать на нем свою функцию. для получения дополнительной информации: http://stackoverflow.com/questions/21252503/android-how-to-access-a-getter-method-in-parent-activity-from-fragment/21252529#21252529 –
aditi последний раз, когда я сказал u abt singleton класс у вас прочитал этот класс дорогой –