Как сделать переход на фрагмент в spinner'e со строчки во фрагменте
MainActivity public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Fragment fragment = new FragmentOne();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.container,fragment);
fragmentTransaction.commit();
}
}
Fragment1 public class FragmentOne extends Fragment {
Spinner spinner1, spinner2;
FragmentTwo fragmentTwo;
FragmentFree fragmentFree;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View vista = inflater.inflate(R.layout.fragment_one, container, false);
{
VideoView videoPlayer;
videoPlayer = vista.findViewById(R.id.videoView3);
Uri myVideoUri = Uri.parse("android.resource://" + R.raw.video);
videoPlayer.setVideoURI(myVideoUri);
MediaController mediaController = new MediaController(requireContext());
videoPlayer.setMediaController(mediaController);
mediaController.setMediaPlayer(videoPlayer);
}
fragmentTwo = new FragmentTwo();
fragmentFree = new FragmentFree();
spinner1 = vista.findViewById(R.id.spinner1);
String selected = spinner1.getSelectedItem().toString();
Toast.makeText(getContext(), selected, Toast.LENGTH_SHORT).show();
ArrayAdapter<String> adapter = new ArrayAdapter<>(
requireContext(), R.layout.custom_spinner, getResources().getStringArray(R.array.List)
);
adapter.setDropDownViewResource(R.layout.customs_spinner_dropdown);
spinner1.setAdapter(adapter);
spinner2 = vista.findViewById(R.id.spinner2);
String selected1 = spinner2.getSelectedItem().toString();
Toast.makeText(getContext(), selected1, Toast.LENGTH_SHORT).show();
ArrayAdapter<String> adapter1 = new ArrayAdapter<>(
requireContext(), R.layout.custom_spinner, getResources().getStringArray(R.array.ListTwo)
);
adapter1.setDropDownViewResource(R.layout.customs_spinner_dropdown);
spinner2.setAdapter(adapter1);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
switch (i) {
case 0:
selectFragment(fragmentTwo);
break;
case 1:
selectFragment(fragmentFree);
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
return vista;
}
private void selectFragment(Fragment fragment) {
FragmentTransaction fragmentTransaction = requireActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.FragOne,fragment);
fragmentTransaction.commit();
}
}
Разметка фрагмент 1
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/FragOne"
tools:context=".FragmentOne">
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RelativeLayout
android:id="@+id/Relative1"
android:layout_width="match_parent"
android:layout_height="235dp">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="-2dp"
android:layout_marginBottom="0dp"
android:contentDescription="@string/todo"
app:srcCompat="@drawable/big" />
</RelativeLayout>
<TableLayout
android:id="@+id/TableLayout"
android:layout_width="match_parent"
android:layout_height="95dp"
android:layout_below="@id/Relative1"
android:layout_alignParentStart="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
android:background="#1dbf48">
<TableRow
android:id="@+id/first_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#1dbf48">
<Button
android:id="@+id/button13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_setting"
android:fontFamily="@font/montserrat_bold"
android:inputType="textCapWords"
android:text="@string/Glav"
android:textAlignment="center" />
<Button
android:id="@+id/button24"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_setting"
android:fontFamily="@font/montserrat_bold"
android:inputType="textCapWords"
android:text="@string/Fhoto"
android:textAlignment="center" />
<Button
android:id="@+id/button16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_setting"
android:fontFamily="@font/montserrat_bold"
android:inputType="textCapWords"
android:text="@string/Info"
android:textAlignment="center" />
<Button
android:id="@+id/button14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_setting"
android:fontFamily="@font/montserrat_bold"
android:inputType="textCapWords"
android:text="@string/Contacts"
android:textAlignment="center" />
</TableRow>
<TableRow
android:id="@+id/second_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:background="#1dbf48">
<Button
android:id="@+id/button23"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:background="@drawable/bg_setting"
android:fontFamily="@font/montserrat_bold"
android:inputType="textCapWords"
android:text="@string/News"
android:textAlignment="center" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="125dp"
android:layout_height="48dp"
android:background="@drawable/bg_setting"
android:entries="@array/List"
android:fontFamily="@font/montserrat_bold"
android:inputType="textCapWords"
android:spinnerMode="dropdown"
android:textAlignment="center" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="109dp"
android:layout_height="48dp"
android:background="@drawable/bg_setting"
android:entries="@array/ListTwo"
android:fontFamily="@font/montserrat_bold"
android:inputType="textCapWords"
android:spinnerMode="dropdown"
android:textAlignment="center" />
<Button
android:id="@+id/button22"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:background="@drawable/bg_setting"
android:fontFamily="@font/montserrat_bold"
android:inputType="textCapWords"
android:text="@string/Me"
android:textAlignment="center" />
</TableRow>
</TableLayout>
<VideoView
android:id="@+id/videoView3"
android:layout_width="412dp"
android:layout_height="656dp"
android:layout_below="@+id/Relative1"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="-1dp"
android:layout_marginTop="95dp"
android:layout_marginEnd="0dp"
android:layout_marginBottom="-328dp" />
</RelativeLayout>
Когда на спиннер1 нажимаю, выпадает список, при нажатие на первый элемент списка, появляется фрагмент 2, но поверх фрагмента 1, а нужнен чистый лист фрагмента 2
Источник: Stack Overflow на русском