Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing argument to fragment that is defined in XML layout

public class ActivityA extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_one);
    }
}

activity_one.xml

<fragment
    android:id="@+id/fragment"
    class="com.emoontech.waternow.FragmentA"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

FragmentA

public class FragmentA extends Fragment{
    public static FragmentEditEvent newInstance(String param1, String param2) {
        FragmentEditEvent fragment = new FragmentEditEvent();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }
}

//From Another Activity on button click

Intent intent = new Intent(this, ActivityA.class);
intent.putString("param1","val1");
intent.putString("param2","val2");
startActivity(intent);

//How to send these two values to FragmentA?

like image 573
touchchandra Avatar asked Aug 31 '25 05:08

touchchandra


1 Answers

try this

        // From ActivityA
        // retrieve the content of the intent from the previous activity
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fragment); // set content view to layout

        String param1Text= getIntent().getStringExtra("param1");
        String param2Text = getIntent().getStringExtra("param2");

        // this will pass the parameter to the fragment
        Fragment frament = FragmentA.newInstance(param1Text, param2Text);
        // use the fragment for what you desire

    }
like image 150
Muyide Ibukun Avatar answered Sep 02 '25 20:09

Muyide Ibukun