私はAndroidの初心者で、最初のAndroid app。私の[About]メニュー項目をクリックすると、本当に長いメッセージのアラートダイアログが表示されます。私はそれをスクロール可能にするためにさまざまな方法を試してみましたが、できませんでした。
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();
誰も私にそれをスクロール可能にする方法を詳細に説明できますか?任意の助けや提案をいただければ幸いです!
この解決策は this post から取っています。
ビューをスクロール可能にするには、ScrollViewコンテナー内にネストする必要があります。
<ScrollView>
<LinearLayout Android:orientation="vertical"
Android:scrollbars="vertical"
Android:scrollbarAlwaysDrawVerticalTrack="true">
<TextView />
<Button />
</LinearLayout>
</ScrollView>
ScrollViewコンテナは子レイアウトビューを1つしか持つことができないことに注意してください。たとえば、LinearLayoutなしでTextViewとButtonをScrollViewに配置することはできません。
その場合、スクロールビューの下にテキストビューを含む独自のlayout.xmlファイルを作成できます。このテキストビューでTextMessageを設定し、アラートダイアログボックスでこのレイアウトを拡張します。
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>
アクティビティクラス
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();
デフォルトのアプローチを使用できます:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
.setMessage(message);
AlertDialog alert = builder.create();
alert.show();
メッセージTextViewは、alert_dialog.xmlに組み込まれているScrollViewコンテナーであることがわかります。使用されるレイアウトです。
このファイルの場所は post です