Я пытаюсь заменить фрагмент другим фрагментом, если пользователь нажимает на один из элементов списка. Теперь проблема заключается в том, что отображается другой фрагмент, но он не заменяет предыдущий кадр, но он просто отображается поверх предыдущего фрагмента. Это, как я называю свой новый фрагмент на элемент списка нажмите:Перекрытие при замене одного фрагмента на другой
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String sender = ((TextView) view.findViewById(R.id.sender)).getText() .toString();
String subject = ((TextView) view.findViewById(R.id.subject)).getText() .toString();
String fname = ((TextView) view.findViewById(R.id.file_name)).getText() .toString();
Fragment frag =new DisplayFragment();
Bundle bundle = new Bundle();
bundle.putString("file_name", fname);
frag.setArguments(bundle);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_frame, frag);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
и деятельность, связанная с этим фрагментом является:
<FrameLayout
android:id="@+id/fragment_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
теперь код для нового фрагмента:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.activity_displayfile, container, false);
return rootView;
}
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
TextView tv=(TextView)getView().findViewById(R.id.textView1);
Bundle bundle = this.getArguments();
String myfile = (String)bundle.get("file_name");
tv.setText(myfile);
}
и связанной с ним деятельностью является:
<FrameLayout
android:id="@+id/display_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
желаемый результат должен быть текстовым в новом фрагменте, который должен заменить весь контент предыдущего фрагмента. но результат после нажатия элемента, который я получаю: Этот «привет» должен отображаться отдельно, а не со списком. Кажется, мой код верен. Заранее спасибо.
Отсутствие размещения списка в рамке рамки не помогает –
Пожалуйста, см. Обновление – Sanjeev
. Один из вариантов заключается в замене макета кадра, который я понял, но что такое «использовать идентификатор вида списка в замене фрагмента», как вы это делаете? –