Intereting Posts

Как перейти от одного фрагмента к другому фрагменту при щелчке ImageView в Android?

У меня есть ImageView. Я хочу перейти от одного фрагмента к другому фрагменту одним щелчком изображения, так же, как мы можем перейти от одного действия к другому, используя

Intent i=new Intent(MainActivity.this,SecondActivity.class); startActivity(i); 

Как я могу это сделать? Может ли кто-нибудь объяснить мне шаг за шагом?

Мои коды выглядят следующим образом:

mycontacts.class

 public class mycontacts extends Fragment { public mycontacts() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View v = super.getView(position, convertView, parent); ImageView purple=(ImageView)v.findViewById(R.id.imageView1); purple.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //how to go to tasks fragment from here??? } }); return view; } } 

tasks.class

 public class tasks extends Fragment { public tasks() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_layout_one, container, false); return view; } } 

Solutions Collecting From Web of "Как перейти от одного фрагмента к другому фрагменту при щелчке ImageView в Android?"

 purple.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Fragment fragment = new tasks(); FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.content_frame, fragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); } }); 

Вы пишете вышеприведенный код … там мы заменяем R.id.content_frame нашим фрагментом. Надеюсь, это поможет вам

Внутри вашего onClickListener.onClick, положите

 getFragmentManager().beginTransaction().replace(R.id.container, new tasks()).commit(); 

Другими словами, в вашем mycontacts.class

 public class mycontacts extends Fragment { public mycontacts() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View v = super.getView(position, convertView, parent); ImageView purple=(ImageView)v.findViewById(R.id.imageView1); purple.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub getFragmentManager() .beginTransaction() .replace(R.id.container, new tasks()) .commit(); } }); return view; } } 

Теперь, помните, что R.id.container – это контейнер (FrameLayout или другие макеты) для действия, которое вызывает фрагмент

Вы можете перейти к другому фрагменту с помощью транзакций FragmentManager. Фрагмент нельзя назвать подобной деятельностью. Фракции существуют в отношении существования деятельности.

Вы можете вызвать другой фрагмент, написав следующий код:

  FragmentTransaction t = this.getFragmentManager().beginTransaction(); Fragment mFrag = new MyFragment(); t.replace(R.id.content_frame, mFrag); t.commit(); 

Здесь «R.id.content_frame» – это идентификатор макета, на котором вы хотите заменить фрагмент.

Вы также можете добавить другой фрагмент для замены.