Android - How to manage multiple instances of one fragment with different content?

I want to be able to setText and getText from views of individual fragments. As now, when I install the Text of Framgent TextView, it changes the text of this view in all fragments.

I experimented by moving things, but here is my code for now:

Fragment Class

public class TestFragment extends Fragment{

    View view;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.test_fragment, container, false);
        TextView tv = (TextView) view.findViewById(R.id.huh);
        //tv.setText("AAAAAAAAAAAAAAAAAAA");

        return view;
    }

    public void setText(String asdf) {
        TextView test = (TextView) view.findViewById(R.id.huh);
        test.setText(asdf);
    }


}

Action class

    public class Manage extends BaseActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.manage);

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        TestFragment fragment = new TestFragment();
        //fragment.setText("ASDF");
        fragmentTransaction.add(R.id.test_fragment, fragment, "testtag");
        fragmentTransaction.commit();
    }
}

The framgent.xml file is pretty simple; just one text file.

+4
source share
1 answer

Fragments are pushed onto the stack with a parameter named tag. In your case, you added a snippet using "testtag".

fragmentTransaction.add(R.id.test_fragment, fragment, "testtag");

, . , .

FragmentManager fm = this.getSupportFragmentManager();
Fragment testtagFragment = fm.findFragmentByTag("testtag"); 
View targetView = testtagFragment.getView().findViewById(R.id.anyViewInsideContentOfYourFragment);

Edit:

setText getText .

.

  • setText , . newInstance. .
  • getText . , onCreateView. , getView onCreate method ( ), null. , , get set .
+7

All Articles