2012-05-22 20 views
12
Bir AlertDialog içinde dizeleri listesini görüntüleyen am

yılında Sabit genişlikli yazı tipi aşağıda gösterildiği gibi:Android: AlertDialog

enter image description here

1.How ben gibi bir sabit genişlikli yazı

aşağıda gösterilen seti olabilir

enter image description here

2. The AlertDialog varsayılan olarak dikey kaydırma özelliğini etkinleştirir. Son satırın bir önceki satırda kalması için yatay kaydırmayı nasıl etkinleştirebilirim?

cevap

16

AlertDialog için kendi görünümünüzü şişirin ve o görünümde android: typeface = "monospace" öğesini ayarlayın. Bunu başarmak için:

enter image description here

kullanın bu düzen:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/dlgView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout android:id="@+id/dlgLayout" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="5dp"> 
    <TextView android:id="@+id/dlgText" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:textColor="#FFF" 
     android:typeface="monospace"/> 
    </LinearLayout> 
</ScrollView> 

ana aktivite için bu kod bir AlertDialog oluşturur (varsayılan üzerine düzen bir düğme damla).

public class MonospacedAlertActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     //attach an instance of HandleClick to the Button 
     findViewById(R.id.button1).setOnClickListener(new HandleClick()); 
    } 
    private class HandleClick implements OnClickListener{ 
     public void onClick(View arg0) { 
      ShowAlert(MonospacedAlertActivity.this); 
     } 

     private void ShowAlert(Activity callingActivity) { 
      //Generate views to pass to AlertDialog.Builder and to set the text 
      View dlg; 
      TextView tvText; 
      try { 
       //Inflate the custom view 
       LayoutInflater inflater = callingActivity.getLayoutInflater(); 
       dlg = inflater.inflate(R.layout.alertmono, (ViewGroup) callingActivity.findViewById(R.id.dlgView)); 
       tvText = (TextView) dlg.findViewById(R.id.dlgText); 
      } catch(InflateException e) { 
       //Inflater can throw exception, unlikely but default to TextView if it occurs 
       dlg = tvText = new TextView(callingActivity); 
      } 
      //Set the text 
      tvText.setText("22-05-2012 20:51:13 114 58 00:04:19\n"+ 
          "22-05-2012 20:59:15 84 52 00:01:25\n"+ 
          "22-05-2012 22:49:48 96 51 00:01:32\n"+ 
          "23-05-2012 00:08:52 79 58 00:01:26"); 
      //Build and show the dialog 
      new AlertDialog.Builder(callingActivity) 
       .setTitle(callingActivity.getString(R.string.app_name)) 
       .setCancelable(true) 
       .setIcon(R.drawable.ic_launcher) 
       .setPositiveButton("OK", null) 
       .setView(dlg) 
       .show(); //Builder method returns allow for method chaining 
     } 
    } 
} 
+0

'alertmono' ve/veya 'R.layout' nedir? – DSlomer64

+0

R.layout, Android'in derlenmiş düzenlere nasıl referans verdiğidır, alertmono, kaydedilen iletişim düzeni dosyasının adıydı. –

İlgili konular