Añadiendo un country Code piker
Lo primero que se va utilizar es una implementación en el gradel del proyecto y lo sincronizamos
implementation 'com.hbb20:ccp:2.6.0'También lo pueden buscar en google como country code picker android github
xml
El siguiente código va en el dialogo de login y reemplaza al spiner
<com.hbb20.CountryCodePicker
android:id="@+id/CodeCountry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:ccp_textSize="18sp"
app:ccp_arrowColor="@color/white"
app:ccp_contentColor="@color/white"
app:ccp_defaultLanguage="SPANISH"
app:ccp_autoDetectCountry="true"
android:background="@drawable/btn_neutral"
app:ccpDialog_textColor="@color/white"
app:ccpDialog_background="@color/colorBron500" />
java
A continuación le hacemos los siguiente cambio en el MainActivity.java y quitamos el código que ya no usaremos
Declaramos al inicio
CountryCodePicker mCodeCountry;
AppCompatTextView mTextViewPhone;
AppCompatEditText mEditTextPhone;
AppCompatButton buttonLogIn,mButtonPrevious,mButtonNext;
String numPhone="",codeCountry="",Phone="";
Cambiamos el codigo del dialog logIn añadiendo lo del date country piker
private void DialogLogIn() {
Dialog dialog = new Dialog(MainActivity2.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_login);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
mCodeCountry=dialog.findViewById(R.id.CodeCountry);
mEditTextPhone=dialog.findViewById(R.id.EditTextPhone);mEditTextPhone.setText(Phone);
mButtonPrevious=dialog.findViewById(R.id.ButtonPrevious);
mButtonPrevious.setOnClickListener(view -> dialog.dismiss());
mButtonNext=dialog.findViewById(R.id.ButtonNext);
mButtonNext.setOnClickListener(view -> {
if (Objects.requireNonNull(mEditTextPhone.getText()).toString().trim().equalsIgnoreCase("")) {
Toast.makeText(MainActivity2.this,"Campos Vacios"+Phone,Toast.LENGTH_SHORT).show();
} else if(!(mEditTextPhone.getText().toString().length() >8 && mEditTextPhone.getText().toString().length() <20)){
Toast.makeText(MainActivity2.this,"Debe ser un número de telefono valido ",Toast.LENGTH_SHORT).show();
}else {
SaveDate();
DialogPin();
dialog.dismiss();
}
});
dialog.setCancelable(false);
dialog.show();
}
Tambien reemplazamos el metodo Save Date
public void SaveDate(){
codeCountry=mCodeCountry.getSelectedCountryCodeWithPlus();
Phone= Objects.requireNonNull(mEditTextPhone.getText()).toString();
numPhone=codeCountry+Phone;
}
por ultimo el código de del dialog_pin ya que también se realizo cambios lo volvemos a copiar y pegar.
xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:layout_gravity="center"
app:cardElevation="3dp"
app:cardUseCompatPadding="true"
app:cardCornerRadius="20dp">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="24sp"
android:layout_marginHorizontal="60dp"
android:layout_marginVertical="10dp"
android:text="@string/code" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/textViewPhone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/number_phone"
android:layout_marginHorizontal="20dp"/>
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/editTextNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:textSize="24sp"
android:gravity="center"
android:ems="4"
android:inputType="numberPassword"
tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/ButtonPreviousPin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:foreground="?android:attr/selectableItemBackground"
android:background="@drawable/btn_left"
android:text="@string/previous"
tools:ignore="TextContrastCheck,UnusedAttribute" />
<View
android:layout_width="1dp"
android:layout_height="20dp"/>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/ButtonNextPin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:foreground="?android:attr/selectableItemBackground"
android:background="@drawable/btn_right"
android:text="@string/next"
tools:ignore="TextContrastCheck,UnusedAttribute" />
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.cardview.widget.CardView>
java
@SuppressLint("SetTextI18n")
private void DialogPin() {
Dialog dialog = new Dialog(MainActivity2.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_pin);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
mTextViewPhone=dialog.findViewById(R.id.textViewPhone);
mTextViewPhone.setText(getText(R.string.number)+" "+numPhone);
mButtonPrevious=dialog.findViewById(R.id.ButtonPreviousPin);
mButtonPrevious.setOnClickListener(view -> {
DialogLogIn();
dialog.dismiss();
});
mButtonNext=dialog.findViewById(R.id.ButtonNextPin);
mButtonNext.setOnClickListener(view -> {
if (!Objects.requireNonNull(mEditTextPhone.getText()).toString().trim().equalsIgnoreCase("")) {
//Intent
dialog.dismiss();
} else {
Toast.makeText(MainActivity2.this,"Campos Vacios",Toast.LENGTH_SHORT).show();
}
});
dialog.setCancelable(false);
dialog.show();
}
Comentarios
Publicar un comentario