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

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

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

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

мои коды следующие:

mycontacts.класс!--11-->

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;

    } 
}

задач.класс!--11-->

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;
    }
}

3 ответов


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 с нашим фрагментом. надеюсь, это поможет вам


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

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

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

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

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


внутри onClickListener.onClick, put

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

другими словами, в ваших mycontacts.класс!--4-->

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 или другие макеты) для действия, которое вызывает фрагмент