Передача данных от активности к фрагменту в Android не работает - PullRequest
2 голосов
/ 10 ноября 2019

Я хочу передать параметры из активности во фрагмент. Это код из упражнения:

public class MatchActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_match);
        Bundle bundle = new Bundle();
        bundle.putString("edttext", "From Activity");
        MarqueFragment fragobj = new MarqueFragment();
        fragobj.setArguments(bundle);

    }

}

Это код из фрагмента:

public class MarqueFragment extends Fragment {

    @Override
    public void onCreate ( Bundle savedInstanceState ) {
        super.onCreate(savedInstanceState);
    }
    @Override
    public View onCreateView ( LayoutInflater inflater, ViewGroup container,   Bundle savedInstanceState ) {
        View convertView=inflater.inflate(R.layout.fragment_marque, container, false);


            if (getArguments() != null) {
                String mParam1 = getArguments().getString("edttext");
                System.out.println("got this from MatchActivity "+mParam1);
            }else{
                System.out.println("got nothing");
            }     
}

Я не получаю никаких аргументов, не знаю почему. Обратите внимание: я не получаю сообщение об ошибке: «ничего не получил» в качестве вывода.

1 Ответ

1 голос
/ 10 ноября 2019

Измените свой код на этот

Bundle bundle = new Bundle();
bundle.putString(edttext", "From Activity");
MarqueFragment fragobj = new MarqueFragment();
fragobj.setArguments(bundle);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_marque, fragobj);
transaction.commit();
...