Hirdetés

Keresés

Új hozzászólás Aktív témák

  • #39560925

    törölt tag

    válasz Karma #3217 üzenetére

    Ha megváltoznak az adatok, hogyan tudom elérni a fragmentet, amiben a lista van? Jelenleg így épül fel az UI:

    MainActivity így néz ki:

    <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.attilapalf.exceptional.ui.main.MainActivity">

    <android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.PagerTabStrip
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    />

    </android.support.v4.view.ViewPager>

    </RelativeLayout>

    Tehát ez egy lapozható felület, 3 oldala van. Itt van a MainPagerAdapter kódja:

    public class MainPagerAdapter extends FragmentPagerAdapter {

    public MainPagerAdapter(FragmentManager fm) {
    super(fm);
    }

    @Override
    public Fragment getItem(int position) {
    switch (position) {
    case 0:
    return new MainFragment();
    case 1:
    return new ExceptionsFragment();
    case 2:
    return new FriendsFragment();
    default:
    return new MainFragment();
    }
    }

    @Override
    public int getCount() {
    return 3;
    }

    @Override
    public CharSequence getPageTitle(int position) {
    switch (position) {
    case 0:
    return "Main";
    case 1:
    return "My Exceptions";
    case 2:
    return "My Friends";
    default:
    return "unknown";
    }
    }
    }

    Az ExceptionsFragment kódja pedig itt van. A notifyDatasetChanged() metódusát szeretném valahogy meghívni a MainActivity throwMeExcClicked(View) metódusban:

    private static String makeFragmentName(int viewPagerId, int index) {
    return "android:switcher:" + viewPagerId + ":" + index;
    }


    public void throwMeExcClicked(View view) {
    Exception e = Exception.getRandomException();

    synchronized (this) {
    if (mLocation == null) {
    setLocationExceptions.add(e);

    } else {
    e.setLocation(mLocation);
    exceptionPreferences.addException(e);
    }
    }

    String fragmentTag = makeFragmentName(R.id.pager, 1);
    FragmentManager fragmentManager = getFragmentManager();
    Fragment eFrag = fragmentManager.findFragmentByTag(fragmentTag);

    // jó volna valahogy elérni az ExceptionsFragmentet!!!
    }

Új hozzászólás Aktív témák