Исходя из того, что я вижу, вы пропустили транзакцию фрагмента, поэтому я предполагаю, что вы статически отображаете фрагмент, определяя его в файле xml (вам необходимо опубликовать файл activity_layout.xml, чтобы быть уверенным) В вашем activity_main.xml
вам нужно иметь FrameLayout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
tools:context=".login.AuthenticationActivity">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
, а затем внутри вашего View.OnClickListener
вы можете сделать
Bundle bundle = new Bundle();
bundle.putString("Name:", eka);
bundle.putString("Country", toka);
ProfileFragment profileFragment = new ProfileFragment();
profileFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment).commit();
edit.setVisibility(View.GONE);
//Continue with your code
Также хорошей практикой является получение аргументов в onCreate()
Переопределите onCreate()
и выполните следующее
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getArguments();
if(bundle.containsKey("Name:")) {
eka = bundle.getString("Name:"); // make this field to use in onCreateView()
toka = bundle.getString("Country"); // make this field to use in onCreateView()
, затем в onCreateView()
вам понадобится следующее
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
TextView ekat = (TextView) view.findViewById(R.id.nimit);
TextView tokat = (TextView) view.findViewById(R.id.maat);
ekat.setText(eka);
tokat.setText(toka);
}