3
I have an app with a screen and on this screen there is a Fragment. In this event there is a button that, when clicked, I want to call another Ragment and that stays/replaces the Ragment button. I’ve been trying some stuff I’ve seen on the web and I’m not getting it.
Reload Screen
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.gustavo.easypasse.RecargaActivity"
tools:showIn="@layout/activity_recarga">
<LinearLayout
android:id="@+id/linearLayout11"
android:layout_width="0dp"
android:layout_height="25dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:background="@android:color/black"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Valor da recarga"
android:textColor="@android:color/background_light" />
<EditText
android:id="@+id/edtValorRecarga"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/holo_blue_dark"
android:ems="10"
android:inputType="textPersonName" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout12"
android:layout_width="0dp"
android:layout_height="25dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:background="@android:color/black"
android:orientation="horizontal"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout11">
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="CPF"
android:textColor="@android:color/background_light" />
<EditText
android:id="@+id/edtCPF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="9dp"
android:layout_weight="1"
android:background="@android:color/holo_blue_dark"
android:ems="10"
android:inputType="textPersonName" />
</LinearLayout>
<LinearLayout
android:id="@+id/llContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout12">
<include
android:id="@+id/includeCartaoCreditoDebito"
layout="@layout/fragment_cartao_boleto"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout8"
android:layout_width="0dp"
android:layout_height="25dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="168dp"
android:orientation="horizontal"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/llContainer">
<TextView
android:id="@+id/textView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Saldo disponível"
android:textAlignment="center"
android:textColor="@android:color/background_light" />
<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Saldo gasto"
android:textAlignment="center"
android:textColor="@android:color/background_light" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="35dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:orientation="horizontal"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout8"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:id="@+id/linearLayout9">
<TextView
android:id="@+id/tvValorSaldoDisponivel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="R$ 850,00"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="24sp" />
<TextView
android:id="@+id/tvValorSaldoGasto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="R$ 125,00"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="24sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout10"
android:layout_width="0dp"
android:layout_height="25dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="12dp"
android:orientation="horizontal"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout9">
<TextView
android:id="@+id/textView14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Data renovar recarga"
android:textAlignment="center"
android:textColor="@android:color/background_light" />
<TextView
android:id="@+id/textView15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Transferência de saldo"
android:textAlignment="center"
android:textColor="@android:color/background_light" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout15"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout10"
app:layout_constraintVertical_bias="0.0">
<TextView
android:id="@+id/tvDataRenovarRecarga"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="18/10/2017"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="24sp" />
<TextView
android:id="@+id/tvValorTransSaldo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-R$ 25,00"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="24sp" />
</LinearLayout>
1Fragment
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.gustavo.easypasse.CartaoBoletoFragment">
<!-- TODO: Update blank fragment layout -->
<LinearLayout
android:id="@+id/linearLayout13"
android:layout_width="match_parent"
android:layout_height="25dp"
android:layout_marginEnd="0dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
android:background="@android:color/black"
android:orientation="horizontal"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout12">
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="FORMA DE PAGAMENTO"
android:textAlignment="center"
android:textColor="@android:color/background_light" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout14"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_marginTop="25dp"
android:background="@android:color/black"
android:orientation="horizontal"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout13">
<TextView
android:id="@+id/textView13"
android:layout_width="225dp"
android:layout_height="wrap_content"
android:layout_weight="0.98"
android:text="Cartão de crédito/débito"
android:textAlignment="center"
android:textColor="@android:color/background_light" />
<TextView
android:id="@+id/textView16"
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Boleto bancário"
android:textAlignment="center"
android:textColor="@android:color/background_light" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayoutCartaoBoleto"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="50dp"
android:background="@android:color/black"
android:orientation="horizontal">
<ImageButton
android:id="@+id/ibCartaoCredito"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/black"
android:onClick="cartaoCreditoDebito"
android:src="@drawable/cartao_de_credito_01" />
<ImageButton
android:id="@+id/ibBoleto"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/black"
android:src="@drawable/boleto_bancario_01" />
</LinearLayout>
2Fragment
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fragment_cartao"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.gustavo.easypasse.CartaoCreditoFragment">
<!-- TODO: Update blank fragment layout -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:orientation="vertical">
<TextView
android:id="@+id/textView12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:background="@android:color/black"
android:text="FORMA DE PAGAMENTO"
android:textAlignment="center"
android:textColor="@android:color/background_light" />
<TextView
android:id="@+id/textView18"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@android:color/black"
android:text="Cartão de Crédito/Débito"
android:textAlignment="center"
android:textColor="@android:color/background_light" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:src="@drawable/cartao_de_credito_01" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="140dp"
android:orientation="vertical">
</LinearLayout>
Activity of the Recharge Screen
public class RecargaActivity extends AppCompatActivity {
private EditText valorRecarga;
private EditText cpf;
private ImageButton boleto;
private TextView saldoDisponivel;
private TextView saldoGasto;
private TextView renovarRecarga;
private TextView transSaldo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recarga);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
valorRecarga = (EditText) findViewById(R.id.edtValorRecarga);
cpf = (EditText) findViewById(R.id.edtCpf);
saldoDisponivel = (TextView) findViewById(R.id.tvValorSaldoDisponivel);
saldoGasto = (TextView) findViewById(R.id.tvValorSaldoGasto);
renovarRecarga = (TextView) findViewById(R.id.tvDataRenovarRecarga);
transSaldo = (TextView) findViewById(R.id.tvValorTransSaldo);
}
}
Activity of Fragment called
public class CartaoCreditoFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
private OnFragmentInteractionListener mListener;
public CartaoCreditoFragment() {
// Required empty public constructor
}
// TODO: Rename and change types and number of parameters
public static CartaoCreditoFragment newInstance(String param1, String param2) {
CartaoCreditoFragment fragment = new CartaoCreditoFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_cartao_credito, container, false);
final ImageButton cartaoCreditoDebito = (ImageButton) v.findViewById(R.id.ibCartaoCredito);
cartaoCreditoDebito.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CartaoCreditoFragment cartaoCreditoFragment = new CartaoCreditoFragment();
FragmentManager manager = getFragmentManager();
manager.beginTransaction()
//.replace(R.id.llContainer, new CartaoCreditoFragment()).commit();
.replace(R.id.includeCartaoCreditoDebito, new CartaoCreditoFragment()).commit();
}
});
return v;
}
// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onFragmentInteraction(uri);
}
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
}
}
No use using a
Tabbed Activity
?– Costamilam
I do not know is possible to change from fragment to fragment but I believe that this is not a good practice. A suggestion would be in your XML, fragment, call a function that is in the main view
RecargaActivity
something likepublic void didClickChangeCard(View view)
and in this function you should change fragment after all the activity,Activity
, who should have this responsibility to manage the view.– Ricardo Lucas