반응형
Android 대화 상자의 중앙 메시지
대화 상자의 메시지 텍스트를 가운데 정렬하고 싶습니다.
고유 한 TextView 개체를 만든 다음 팝업 작성기에 View로 제공합니다.
AlertDialog.Builder popupBuilder = new AlertDialog.Builder(this);
TextView myMsg = new TextView(this);
myMsg.setText("Central");
myMsg.setGravity(Gravity.CENTER_HORIZONTAL);
popupBuilder.setView(myMsg);
다른 모든 텍스트 매개 변수 (스타일, 색상, 크기 ...)를 제어 할 수 있습니다. 여백을 제어하기 위해 프로그래밍 방식으로 LinearLayout을 만들고 LayoutParams를 설정 한 다음 TextView를 넣을 수 있습니다.
물론 원본 텍스트보기의 중력을 언제든지 설정할 수 있습니다. 이렇게하면 서식 및 패딩에 대해 걱정할 필요가 없습니다.
예를 들면
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
builder.setMessage("Message");
builder.setPositiveButton("OK", null);
AlertDialog dialog = builder.show();
// Must call show() prior to fetching text view
TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);
Chase의 답변을 바탕으로 제목을 중앙에 배치하는 방법은 다음과 같습니다. 이것이 가장 쉬운 방법이라고 생각합니다. Android가 기본적으로 중앙에 있지 않거나 간단한 생성자 매개 변수로 만드는 이유는 저를 넘어 섭니다.
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("My Title");
builder.setMessage("My message");
builder.setPositiveButton("OK", listener);
AlertDialog dialog = builder.show();
// Must call show() prior to fetching views
TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);
TextView titleView = (TextView)dialog.findViewById(context.getResources().getIdentifier("alertTitle", "id", "android"));
if (titleView != null) {
titleView.setGravity(Gravity.CENTER);
}
우리는 같이 사용할 수 있습니다.
public static void showAlert(Activity activity, String message) {
TextView title = new TextView(activity);
// You Can Customise your Title here
title.setText("Your Title Here");
//title.setBackgroundColor(Color.DKGRAY);
title.setPadding(10, 10, 10, 10);
title.setGravity(Gravity.CENTER);
title.setTextColor(Color.WHITE);
title.setTextSize(20);
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setCustomTitle(title);
//builder.setIcon(R.drawable.alert_36);
builder.setMessage(message);
builder.setCancelable(false);
builder.setNegativeButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.show();
TextView messageText = (TextView)alert.findViewById(android.R.id.message);
messageText.setGravity(Gravity.CENTER);
messageText.setTextColor(Color.RED);
}
이 코드를 시도해 볼 수 있습니다
public void Info(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Info Aplication");
builder.setIcon(R.drawable.info_adp);
builder.setMessage("Jakarta Hospital");
builder.setCancelable(false);
builder.setPositiveButton("Exit", null);
AlertDialog dialog = builder.show();
TextView messageView = (TextView)dialog.findViewByI(android.R.id.message);
messageView.setGravity(Gravity.CENTER);
}
이 방법을 사용하면 대화 제목과 메시지가 중앙에 나타납니다.
public static void openDialog(Context context, String message) {
TextView title = new TextView(context);
// You Can Customise your Title here
title.setText("Information Message");
title.setBackgroundColor(Color.BLACK);
title.setPadding(10, 15, 15, 10);
title.setGravity(Gravity.CENTER);
title.setTextColor(Color.WHITE);
title.setTextSize(22);
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setCustomTitle(title);
alertDialog.setMessage(message);
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
alertDialog.show();
// You Can Customise your Message here
TextView messageView = (TextView) alertDialog
.findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);
}
without using textview. worked for me.
styles.xml
<style name="CustomAlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:gravity">center</item>
</style>
Alertdialog
final AlertDialog builder = new AlertDialog.Builder(activity,
R.style.CustomAlertDialog)
try this in your TextView:
android:gravity = "center_vertical|center"
참고URL : https://stackoverflow.com/questions/4954130/center-message-in-android-dialog-box
반응형
'code' 카테고리의 다른 글
vue에서 @click으로 여러 함수를 호출하는 방법은 무엇입니까? (0) | 2020.11.09 |
---|---|
jQuery Div로 스크롤 (0) | 2020.11.09 |
Cocoa-Touch : 두 개의 NSDates가 같은 날에 있는지 어떻게 알 수 있습니까? (0) | 2020.11.09 |
UISearchBar 검색 텍스트 색상을 어떻게 변경할 수 있습니까? (0) | 2020.11.09 |
여러 필드가있는 Collections.sort (0) | 2020.11.09 |