ventana studio personalizado mensaje emergente ejemplo dialogo custom cuadro confirmaciĆ³n con botones android android-layout android-widget textview

studio - progress dialog personalizado android



Android: muestra un cuadro de diƔlogo emergente cuando se hace clic en una palabra en particular en un TextView (1)

Creo que necesitarás Spannable Strings . Además, esta pregunta ayudaría. Crear ClickableSpan será una buena opción para su problema.

SpannableString stringToSpan = new SpannableString("<your sentence>"); TextView textView = (TextView) findViewById(R.id.<yourTextView ID>); textView.setText(stringToSpan); textView.setMovementMethod(LinkMovementMethod.getInstance()); ClickableSpan clickableSpan = new ClickableSpan() { @Override public void onClick(View textView) { //alert box code here } }; stringToSpan.setSpan(clickableSpan, <start position of span>,<end position>,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); }

En mi solicitud, tengo un texto para términos y condiciones.

Al registrarse, usted acepta estar sujeto a nuestros Términos de uso y que ha leído nuestra Política de privacidad.

Se debe poder hacer clic en las palabras Términos de uso y Política de privacidad y mostrar un cuadro de alerta.

Primero intenté dividir las oraciones en cuatro TextView s:

  1. Al registrarse, acepta estar obligado por nuestro
  2. Términos de Uso
  3. y que has leído nuestra
  4. Política de privacidad.

Esto funcionó bien, con el siguiente diseño XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/termsandcondtion" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:orientation="horizontal" > <TextView android:id="@+id/terms_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/terms_1" android:textColor="#000000" android:textSize="12dp" /> <TextView android:id="@+id/terms" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" android:onClick="showTerms" android:text="@string/terms_2" android:textColor="#000000" android:textSize="12dp" /> <TextView android:id="@+id/terms_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/terms_3" android:textColor="#000000" android:textSize="12dp" /> <TextView android:id="@+id/termsofuse" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" android:onClick="showTermsofUse" android:text="@string/terms_4" android:textColor="#000000" android:textSize="12dp" /> </LinearLayout>

El código para mostrar la ventana emergente es:

WebView wv = new WebView(this); wv.loadUrl(url); wv.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Privacy Policy"); alert.setView(wv); alert.setNegativeButton("Close", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { } }); alert.show();

El problema es que los cuatro TextView s no están alineados correctamente entre sí. Esto significa que tengo que usar un TextView y mostrar un diaplog emergente cuando se hace clic en una palabra en particular (Términos de uso, Política de privacidad) en TextView .

¿Cuál es la mejor manera de hacer esto?