Domanda

Ho un FragmentActivity con un FragmentPagerAdapter che contiene una serie di oggetti Fragment attraverso i quali posso scorrere con uno scorrimento orizzontale.

Mi chiedevo se posso accedere a un elemento ("elementToBeChanged") in FragmentActivity dall'interno di un oggetto Fragment?Vorrei passare una stringa dalla classe Fragment all'elemento TextView che si trova nell'oggetto FragmentActivity.

public class GalleryPagerActivity extends FragmentActivity implements OnClickListener {

private TextView elementToBeChanged;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    super.setContentView(R.layout.gallery_pager);

    elementToBeChanged = (TextView) findViewById(R.id.tvTop);
    elementToBeChanged.setOnClickListener(this);

}
}

Come dovrei farlo?L'elemento TextView deve essere aggiornato ogni volta che un oggetto Fragment viene in vista (con uno swipe).

Dovrebbe assomigliare a questo:

public class GalleryFragment extends Fragment {

private FragmentActivity fa;
private LinearLayout ll;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    fa = super.getActivity();

    ll = (LinearLayout) inflater.inflate(R.layout.gallery_fragment, container, false);
...
// ////////
// UPDATE THE "TextView elementToBeChanged" object in the parent FragmentActivity class HERE WHENEVER THIS FRAGMENTS BECOMES ACTIVE/VISIBLE...
// ////////

    return ll;
}
È stato utile?

Soluzione

Nella tua GalleryPagerActivity crea una funzione come updateTextView (String text).Quella funzione imposterà TextView su qualunque sia il valore di input.Quindi nel tuo GalleryFragment chiama semplicemente questa funzione con il testo da visualizzare come tale:

    ((GalleryPagerActivity)getActivity()).updateTextView("my text");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top