I have some button on my HomeFragment i want to to open a Fragment on button click from a fragment . Something like Navigation. I am trying with bellow code but did not worked. Please help ! I am very new to android and trying to learn new things.
Here is My code
import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; public class HomeFragment extends Fragment { public HomeFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_home, container, false); Button aboutBtn = (Button) rootView.findViewById(R.id.aboutusButton); Button phonebookBtn = (Button) rootView.findViewById(R.id.phbookButton); Button schemeBtn = (Button) rootView.findViewById(R.id.schemeButton); Button loanBtn = (Button) rootView.findViewById(R.id.loanButton); Button serviceBtn = (Button) rootView.findViewById(R.id.serviceButton); Button devBtn = (Button) rootView.findViewById(R.id.devButton); aboutBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Launching new Activity on selecting single List Item Intent i = new Intent(getActivity(), AboutFragment.class); startActivity(i); } }); phonebookBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Launching new Activity on selecting single List Item Intent j = new Intent(getActivity(), PhoneBookFragment.class); startActivity(j); } }); schemeBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Launching new Activity on selecting single List Item Intent k = new Intent(getActivity(), HomeFragment.class); startActivity(k); } }); loanBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Launching new Activity on selecting single List Item Intent l = new Intent(getActivity(), RemittanceFragment.class); startActivity(l); } }); serviceBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Launching new Activity on selecting single List Item Intent m = new Intent(getActivity(), ServiceFragment.class); startActivity(m); } }); devBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Launching new Activity on selecting single List Item Intent n = new Intent(getActivity(), AboutDeveloper.class); startActivity(n); } }); return rootView; } }
I am looking for something like bellow code but don't know how to make the code works with my code.
Button aboutBtn = (Button) v.findViewById(R.id.aboutButton); aboutBtn.setOnClickListener(this); Button homeBtn = (Button) v.findViewById(R.id.homeButton); homeButton.setOnClickListener(this); Button serviceBtn = (Button) v.findViewById(R.id.serviceButton); serviceBtn.setOnClickListener(this); @Override public void onClick(View view) { Fragment fragment = null; switch (view.getId()) { case aboutButton: fragment = new AboutFragment(); break; case homeBtn: fragment = new PhonebookFragment(); break; case serviceBtn: fragment = new ServiceFragment(); break; default: fragment = new HomeFragment(); break; } }
You can replace the fragment using FragmentTransaction on button click. Something like this: Fragment someFragment = new SomeFragment(); FragmentTransaction transaction = getFragmentManager(). beginTransaction(); transaction.
You can replace the fragment using FragmentTransaction on button click. Something like this:
Fragment someFragment = new SomeFragment(); FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.replace(R.id.fragment_container, someFragment ); // give your fragment container id in first parameter transaction.addToBackStack(null); // if written, this transaction will be added to backstack transaction.commit();
Learn about performing fragment transactions here.
code:
package com.rupomkhondaker.sonalibank; import android.app.Fragment; import android.app.FragmentTransaction; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; public class HomeFragment extends Fragment implements View.OnClickListener { public HomeFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_home, container, false); Button aboutBtn = (Button) rootView.findViewById(R.id.aboutusButton); Button phonebookBtn = (Button) rootView.findViewById(R.id.phbookButton); aboutBtn.setOnClickListener(this); phonebookBtn.setOnClickListener(this); return rootView; } @Override public void onClick(View view) { Fragment fragment = null; switch (view.getId()) { case R.id.aboutusButton: fragment = new AboutFragment(); replaceFragment(fragment); break; case R.id.phbookButton: fragment = new PhoneBookFragment(); replaceFragment(fragment); break; } } public void replaceFragment(Fragment someFragment) { FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.replace(R.id.frame_container, someFragment); transaction.addToBackStack(null); transaction.commit(); } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With