web-dev-qa-db-ger.com

Wie wechselt man bei einem ImageView in Android von einem Fragment zu einem anderen Fragment?

Ich habe eine ImageView. Ich möchte mit einem Klick von einer Bildansicht von einem Fragment zu einem anderen Fragment wechseln, genauso wie wir es von einer Aktivität zur anderen machen können

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

Wie kann ich das machen? Kann mir jemand Schritt für Schritt erklären?

Meine Codes lauten wie folgt:

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;

    } 
}

Aufgaben.Klasse

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;
    }
}
15
user3256145
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();
    }
});

sie schreiben den obigen Code ... dort ersetzen wir R.id.content_frame durch unser Fragment

47
GvSharma

sie können mit den FragmentManager-Transaktionen zu einem anderen Fragment wechseln. Fragment kann nicht als Aktivitäten bezeichnet werden. Fragmente bestehen zum Vorhandensein von Aktivitäten.

Sie können ein anderes Fragment aufrufen, indem Sie den folgenden Code schreiben:

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

"R.id.content_frame" ist hier die ID des Layouts, in dem Sie das Fragment ersetzen möchten.

sie können auch das andere Fragment hinzufügen.

1
Ashok Singhal

in Ihrem onClickListener.onClick einfügen 

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

In einem anderen Wort in Ihrer 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;

} 
}

denken Sie daran, dass R.id.container der Container (FrameLayout oder andere Layouts) für die Aktivität ist, die das Fragment aufruft

1
t_mo_t