2012-02-02 4 views
7

Androidアラートダイアログで複数行のタイトルを使用することはできますか?私はここに掲載されたいくつかのソリューションを試しましたが、誰も私のために働いていませ私はいつもタイトルのために3ドット(...)の文字列を示すタイトルに終わります。 同じサンプルコードまたは動作例については、高く評価されます。複数行タイトルのアラートダイアログを作成するにはどうすればよいですか?

+0

私の答えを見て、正しいものとしてマークすることを検討してください。 – Radu

+0

私の答えを考えてください、それは誤解を招く "正しい"答えを持っているので迷惑です。 – Radu

答えて

1

を設定する方法です。

あなたがbuilder.setCustomTitleを(使用する必要が
+0

私は3行で試しましたが、タイトル文字列は2文字しか表示できず、3文字目は表示されませんでした。 – Manju

+0

この回答は間違っており、受け入れられる回答ではありません。 –

2

これは、アラートダイアログを使用している場合は、タイトルは、カスタムダイアログに行かなければならない他の最大2行を含むことができ、タイトル

AlertDialog.Builder builder = new AlertDialog.Builder(Class name.this); 
    builder.setTitle("Welcome to App,\n There are no App.\n Add a new data."); 
+4

私はあなたがタイトルバーに2行以上を持つことはできないと思う、私はあなたのサンプルを試して2行目のタイトルを取得することができ、3行目が欠落していたと思う。最初の文字列が30文字以上の場合はどうなりますか? – Manju

20

):

AlertDialog.Builder builder = new AlertDialog.Builder(context); 
TextView textView = new TextView(context); 
textView.setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur " + 
       "tincidunt condimentum tristique. Vestibulum ante ante, pretium porttitor " + 
       "iaculis vitae, congue ut sem. Curabitur ac feugiat ligula. Nulla " + 
       "tincidunt est eu sapien iaculis rhoncus. Mauris eu risus sed justo " + 
       "pharetra semper faucibus vel velit."); 
builder.setCustomTitle(textView); 

ドキュメントはこちらです:AlertDialog.builder

enter image description here

+0

'setCustomTitle()'は 'AlertDialog.Builder'のメソッドではありません。 –

+0

申し訳ありませんが、申し訳ありませんが、あなたは正しいです。 'setCustomTitle(String)'は存在しませんが、使用した 'setCustomTitle(View)'はそうです。 –

+0

うん、完璧に働いた。ありがとう!! –

0

実はここに "正しい" 答えは間違っています。 AlertDialogで最大行数を2以上に設定することができます。次に例を示します。

AlertDialog closePlayerDialog; 
......... 
Builder builder = new AlertDialog.Builder(this); 
builder.setMessage(getString(R.string.AskToClosePlayer)) 
     .setPositiveButton(R.string.Yes, dialogClickListener) 
     .setNeutralButton(R.string.NoJustCloseApp, dialogClickListener) 
     .setNegativeButton(R.string.NoContinue, dialogClickListener); 
closePlayerDialog = builder.create(); 
closePlayerDialog.setOnShowListener(new DialogInterface.OnShowListener() { 
    public void onShow(DialogInterface dialog) { 
     float textSize = 12.0f; 
     Button positive = closePlayerDialog.getButton(AlertDialog.BUTTON_POSITIVE); 
     positive.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize); 
     positive.setMaxLines(3); 
     Button neutral = closePlayerDialog.getButton(AlertDialog.BUTTON_NEUTRAL); 
     neutral.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize); 
     neutral.setMaxLines(3); 
     Button negative = closePlayerDialog.getButton(AlertDialog.BUTTON_NEGATIVE); 
     negative.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize); 
     negative.setMaxLines(3); 
    } 
}); 
closePlayerDialog.setCancelable(false);  
closePlayerDialog.show(); 

基本的にはDialogInterface.onShowListenerを使用して、AlertDialogのコンポーネントonShowを編集します。

+0

タイトルの行数を変更する方法を示していませんでしたが、ボタンの行数を変更しました。 'dialog.getTitleBar'などはありませんか? –

+0

@ LuisA.Florit実際にあなたはルイスです。したがって、その場合は、必要に応じてデフォルトのタイトルバーを削除し、カスタムレイアウトの上部に独自のカスタムテキストビューを配置することができます。既存のタイトルバーを削除するために探している行は次のとおりです:dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); – Radu

関連する問題