2013-06-06 13 views
10

Sono principiante in Android e faccio la mia prima app per Android. la mia voce di menu "Informazioni", quando cliccato mostra un messaggio di avviso con un messaggio molto lungo. Ho provato diversi metodi per renderlo scorrevole ma non potevo. Ho provato a leggere diverse domande su StackOverflow ma non hanno funzionato per me. Ecco il mio codice di avviso.Android - Come faccio a far scorrere questo messaggio di avviso?

AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 
alertDialog.setTitle("Title"); 
alertDialog.setMessage("Here is a really long message."); 
alertDialog.setButton("OK", null); 
AlertDialog alert = alertDialog.create(); 
alert.show(); 

Qualcuno può spiegarmi in dettaglio che come renderlo scorrevole? Qualsiasi aiuto o suggerimento sarebbe apprezzato!

+0

leggere http://developer.android.com/reference/android/app/AlertDialog.html se avete bisogno di una visione più complessa di un testo, bisogna farlo un po 'diversamente, usando un TextView scorrevole per es seehttp: //stackoverflow.com/questions/1748977/making-textview-scrollable-in-android – ShinTakezou

+0

usa come http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application –

+0

Possibile duplicato di [Aggiunta di una barra di scorrimento verticale a un AlertDialog in Android?] (Https://stackoverflow.com/questions/1564867/adding-a-vertical-scrollbar-to-an-alertdialog-in-android) – Chisko

risposta

19

Questa soluzione è presa da this post.

Affinché vista scorrevole, occorre annidato all'interno di un contenitore ScrollView:

<ScrollView> 
    <LinearLayout android:orientation="vertical" 
      android:scrollbars="vertical" 
      android:scrollbarAlwaysDrawVerticalTrack="true"> 
     <TextView /> 
     <Button /> 
    </LinearLayout> 
</ScrollView> 

noti che un contenitore ScrollView può avere un solo bambino vista layout. Ad esempio, non è possibile posizionare TextView e Button in una ScrollView senza LinearLayout.

+0

Immagino con scrollview in genere è necessario impostare la larghezza/altezza; come nell'esempio nella domanda qui http://stackoverflow.com/questions/17352987/scrollable-textview-inside-alertdialog-android – Fattie

+0

Questa è la soluzione più semplice! Grazie ! funziona come un incantesimo;) – satyres

+0

controlla la mia risposta qui http://stackoverflow.com/a/33098898/1881527 –

7

In questa situazione è possibile creare il proprio file layout.xml contenente una vista di testo in Vista di scorrimento. e imposta TextMessage in questa visualizzazione di testo, gonfia questo layout con la finestra di dialogo di avviso.

yourxmlfile.xml

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

    <TextView 
     android:id="@+id/textmsg" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="@string/hello" /> 

    </LinearLayout> 
</ScrollView> 

in classe Attività

LayoutInflater inflater= LayoutInflater.from(this); 
View view=inflater.inflate(R.layout.yourxmlfile, null); 

TextView textview=(TextView)view.findViewById(R.id.textmsg); 
textview.setText("Your really long message."); 
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 
alertDialog.setTitle("Title"); 
//alertDialog.setMessage("Here is a really long message."); 
alertDialog.setView(view); 
alertDialog.setButton("OK", null); 
AlertDialog alert = alertDialog.create(); 
alert.show(); 
+0

Ha mostrato un errore "Unknow variabile o campo" textmsg ". ' – ashu

+0

Usa il tuo id del tuo TextView xml qui, ciò che hai dato id di textView in'

+1

Ho avuto modo di sistemarlo. Questa linea aveva bisogno di modifiche .. (TextView) view.findViewById (R.id.textmsg); – ashu

0

Si può semplicemente utilizzare un approccio di default:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Title") 
     .setMessage(message); 

    AlertDialog alert = builder.create(); 

    alert.show(); 

Si può notare che un TextView messaggio è built-in Contenitore ScrollView in alert_dialog.xml. È un layout che viene utilizzato.

La posizione di questo file è post

Problemi correlati