Итак, я использую view pager и панель действий для установки фрагментов в своей деятельности, теперь я хочу установить текст на одном из моих фрагментов из активности контейнера, который на данный момент мне кажется невозможным ... Gogling предположил, что Fragment.bgintransaction() должен быть добавлен с тегом, а затем должен быть идентифицирован с этим тегом, но здесь, в моем фрагменте на основе пейджера, нет метода BeginTransaction(). Просьба предложить какой-либо способ ИграешьGet Fragment Text View from Activity
1
A
ответ
1
public class AdminTabsPager extends SherlockFragmentActivity {
private TabHost mTabHost;
private ViewPager mViewPager;
private TabsAdapter mTabsAdapter;
private String comingFrom ="";
private String moduleName ="";
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
@Override
public void onBackPressed() {
return;
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_tabs_pager);
mTabHost = (TabHost)findViewById(android.R.id.tabhost);
mTabHost.setup();
Bundle bundle = this.getIntent().getExtras();
if(bundle.containsKey("name")) {
comingFrom = bundle.getString("name");
}
if(bundle.containsKey("module")) {
moduleName = bundle.getString("module");
}
mViewPager = (ViewPager)findViewById(R.id.pager);
mViewPager.setOffscreenPageLimit(1);
mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager);
mTabsAdapter.addTab(mTabHost.newTabSpec("Tab 1").setIndicator("Tab 1"),TabOneFragmentActivity.class, null);
mTabsAdapter.addTab(mTabHost.newTabSpec("Tab 2").setIndicator("Tab 2"),TabTwoFragmentActivity.class, null);
mTabsAdapter.addTab(mTabHost.newTabSpec("Tab 3").setIndicator("Tab 3"),TabThreeFragmentActivity.class, null);
mTabsAdapter.addTab(mTabHost.newTabSpec("Tab 4").setIndicator("Tab 4"),TabFoureFragmentActivity.class, null);
mTabsAdapter.addTab(mTabHost.newTabSpec("Tab 5").setIndicator("Tab 5"),TabFiveFragmentActivity.class, null);
if(bundle.containsKey("name") && comingFrom.equals("Tab_1Fragment")) {
mTabHost.setCurrentTab(3);
}else if(bundle.containsKey("name") && comingFrom.equals("Tab_2Fragment")) {
mTabHost.setCurrentTab(4);
}else if(bundle.containsKey("name") && comingFrom.equals("Tab_3Fragment")) {
mTabHost.setCurrentTab(0);
}else if(bundle.containsKey("name") && comingFrom.equals("Tab_4Fragment")) {
mTabHost.setCurrentTab(1);
}else {
mTabHost.setCurrentTab(0);
}
if (savedInstanceState != null) {
mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
}
}
@Override защищен недействительным onSaveInstanceState (Bundle outState) { super.onSaveInstanceState (outState); outState.putString ("tab", mTabHost.getCurrentTabTag()); }
public static class TabsAdapter extends FragmentPagerAdapter
implements TabHost.OnTabChangeListener, ViewPager.OnPageChangeListener {
private final Context mContext;
private final TabHost mTabHost;
private final ViewPager mViewPager;
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
static final class TabInfo {
private final Class<?> clss;
private final Bundle args;
TabInfo(String _tag, Class<?> _class, Bundle _args) {
clss = _class;
args = _args;
}
}
static class DummyTabFactory implements TabHost.TabContentFactory {
private final Context mContext;
public DummyTabFactory(Context context) {
mContext = context;
}
@Override
public View createTabContent(String tag) {
View v = new View(mContext);
v.setMinimumWidth(0);
v.setMinimumHeight(0);
return v;
}
}
public TabsAdapter(FragmentActivity activity, TabHost tabHost, ViewPager pager) {
super(activity.getSupportFragmentManager());
mContext = activity;
mTabHost = tabHost;
mViewPager = pager;
mTabHost.setOnTabChangedListener(this);
mViewPager.setAdapter(this);
mViewPager.setOnPageChangeListener(this);
}
public void addTab(TabHost.TabSpec tabSpec, Class<?> clss, Bundle args) {
tabSpec.setContent(new DummyTabFactory(mContext));
String tag = tabSpec.getTag();
TabInfo info = new TabInfo(tag, clss, args);
mTabs.add(info);
mTabHost.addTab(tabSpec);
notifyDataSetChanged();
}
@Override
public int getCount() {
return mTabs.size();
}
@Override
public Fragment getItem(int position) {
TabInfo info = mTabs.get(position);
return Fragment.instantiate(mContext, info.clss.getName(), info.args);
}
@Override
public void onTabChanged(String tabId) {
int position = mTabHost.getCurrentTab();
mViewPager.setCurrentItem(position);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
TabWidget widget = mTabHost.getTabWidget();
int oldFocusability = widget.getDescendantFocusability();
widget.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
widget.setDescendantFocusability(oldFocusability);
mTabHost.setCurrentTab(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
}
}
Смежные вопросы
- 1. Open Fragment From Activity
- 2. Get Fragment View From FragmentActivity (ActionBarSherlock)
- 3. Android - Launch Fragment from Activity
- 4. Stuck Run Activity from Fragment
- 5. Set TextView Text from View class Not from Activity
- 6. setText to Fragment from in Activity
- 7. ArrayList from Fragment to Activity then to another Fragment
- 8. Android Calling Activity from Fragment crashes app
- 9. setBackgroundResource для ImageButton of Activity from Fragment
- 10. Удалить Child View From Fragment
- 11. Разница между startActivityForResult from Fragment и startActivityForResult from Activity
- 12. put string from call Activity Method From Inside A Fragment
- 13. Open Fragment from Another activity/Activitybaractivity
- 14. Reload recyclerview on fragment from Activity
- 15. open other activity from view
- 16. Запуск AlertDialog From Fragment
- 17. Android прохождение ArrayList <Model> to Fragment from Activity
- 18. Django - Get gravatar from view
- 19. HashMap Store and Restore onSaveInstanceState from Fragment to another Activity
- 20. Android get context from non Activity Class
- 21. Получите TabHost из Fragment Activity?
- 22. Action Bar Fragment Activity
- 23. Android Fragment & Activity
- 24. WallpaperManager from Fragment class
- 25. Android Trouble save text from Edit Text View to database
- 26. Переменная Java Java Pass Variable from Fragment To Activity
- 27. Что такое рекомендуемый подход для взаимодействия с Activity from Fragment?
- 28. Fragment views null при вызове from onResume activity
- 29. Call FragmentActivity from Fragment
- 30. Работа с Map Fragment Activity
общественность Строка makeFragmentName (интермедиат viewId, длинный индекс) \t { возвращения "андроид: переключатель:" + viewPager.getId() + ":" + индекс; } 'viewId Идентификатора ViewPager извлеченного с помощью ViewPager.getId() \t \t * @param индекса Положения фрагмента внутри ViewPager' –
Thankyou У меня есть идентификатор сейчас, но как я могу findfragmentByID используя этот идентификатор, так что я могу получить текст View. \t \t \t \t \t ShareDataFragment fragment_obj = (ShareDataFragment) getFragmentManager(). findFragmentById (/ * что разместить здесь * /); –
использовать findFragmentByTag вместо –