2013-07-14 5 views
3

enter image description hereУдалить оповещения границы диалога с пользовательской темой

В моем приложении я использую предупреждение диалог с закругленными углами theme.But он есть alertdialog прямоугольника и моя проблема theme.My как заменить оповещения границы диалога как dialog.I хотите показать этот элемент набора только с собственной темой.

Я хочу, чтобы результат такой способ вместо вышеуказанной теме:

enter image description here

Основная активность:

AlertDialog.Builder alertSeverity = new AlertDialog.Builder(
      getActivity(), R.style.Theme_CustomDialog); 
    alertSeverity.setTitle("Severity Status"); 
CharSequence[] severityStatus = { "Low-Severity", 
      "Middle-Severity", "High-Severity" }; 
    alertSeverity.setItems(severityStatus, 
      new DialogInterface.OnClickListener() {   

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
       } 
       }); 

Моя тема:

<style name="Theme.CustomDialog" parent="android:style/Theme.Dialog"> 
    <item name="android:windowBackground">@drawable/shapedialogtheme</item> 
<item name="android:windowFrame">@null</item> 

</style> 

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 

<solid android:color="#565656" /> 

<stroke 
    android:width="5dp" 
    android:color="#ffff8080" /> 

<corners android:radius="30dp" /> 

<padding 
    android:bottom="10dp" 
    android:left="10dp" 
    android:right="10dp" 
    android:top="10dp" /> 
<size 
    android:width="150dp" 
    android:height="150dp"/> 

</shape> 

enter image description here

+0

и может сделать это легко сделав его обычным, а не используя темы. – TheFlash

+0

Как сделать таможню – Satheesh

+0

wait i m собираюсь отправить код. – TheFlash

ответ

2

попробуйте следующее решение:

проходят от диалога, и установить точный вид использования с помощью setContentView.

alertDialog используется для некоторых функций. это не значит, что он может делать все, что угодно.

Возможно, вместо продолжения вы можете взять диалог, а затем использовать setContentView.

7

Использовать диалог вместо AlertDialog.

Создайте свой собственный макет, который вы хотите отобразить в диалоговом окне и в диалоговом окне setContent. Применить эту тему android.R.style.Theme_Translucent_NoTitleBar в диалоговом окне скроет границу.

Вот пример кода.

Dialog dialog = new Dialog(activity.this, android.R.style.Theme_Translucent_NoTitleBar); 

// your layout file 
dialog.setContentView(R.layout.dialog); 

// for hide title 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

//for set title 
dialog.setTitle("Custom Dialog"); 


dialog.show(); 

Обновлено:

просто попытался это в AlertDialog.

AlertDialog.Builder alertSeverity = new AlertDialog.Builder(
      getActivity(), android.R.style.Theme_Translucent_NoTitleBar); 
+0

эй, я хочу установить элементы динамически, поэтому я определенно использовал alertdialog вместо диалога. – Satheesh

+0

@Satheesh проверить мой обновленный ответ, если он не будет работать, тогда вы должны использовать диалог .. вы также можете взять listview в макете. –

+0

http: //stackoverflow.com/a/5910772/624069 –

2

Использование Dialog вместо AlertDialog

Dialog callAlert = new Dialog(LoginActivity.this,R.style.CutomDialog); 
callAlert.setContentView(R.layout.call); 

Style.xml

<style name="CutomDialog" parent="android:style/Theme.Dialog"> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowAnimationStyle">@style/Animations.DialogAnimation</item> 
</style> 

call.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:layout_margin="20dp" 
android:background="@drawable/call_bg"></RelativeLayout> 

call_bg.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
<stroke android:width="3dp" android:color="#A20B3F" /> 

<corners android:bottomRightRadius="4dp" android:bottomLeftRadius="4dp" 
android:topLeftRadius="4dp" android:topRightRadius="4dp"/> 

Главное, что вы должны сделать макет backgrpund прозрачны в противном случае вы будете не в состоянии получить выход, как вы хотите.

2

Вам нужно создать пользовательский диалог для этой цели:

**dialog.xml** 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/txt_view_SaveAs" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/save_as" 
    android:layout_margin="10dp" 
    android:textSize="25dp" /> 

<EditText 
    android:id="@+id/edit_txt_SaveAs" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:minWidth="300dp" 
    android:maxLines="1" 
    android:textSize="20dp" 
    android:maxLength="50" 
    android:layout_margin="10dp" 
    android:text="@string/save_as" /> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_margin="10dp" 
    android:weightSum="1.0" > 

    <Button 
     android:id="@+id/btn_SaveAs" 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_weight="0.5" 
     android:minWidth="100dp" 
     android:textSize="20dp" 
     android:text="@string/save" 
     android:layout_margin="3dp" /> 

    <Button 
     android:id="@+id/btn_Cancel" 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_weight="0.5" 
     android:minWidth="100dp" 
     android:textSize="20dp" 
     android:text="@string/cancel" 
     android:layout_margin="3dp" /> 

</LinearLayout> 

Вы можете сделать другой класс для конкретного диалога, как это:

public class SaveDialog extends Dialog implements android.view.View.OnClickListener { 

private Context context; 

private TextView txt_view_SaveAs; 
private EditText edit_txt_SaveAs; 
private Button btn_SaveAs; 
private Button btn_Cancel; 

public SaveDialog(Context context) { 
    super(context); 
    this.context = context; 
    // TODO Auto-generated constructor stub 
} 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.dialog); 

    setCancelable(true); // Setting the Dialog to be Cancellable on Back Key Press 

    txt_view_SaveAs = (TextView) findViewById(R.id.txt_view_SaveAs); 
    edit_txt_SaveAs = (EditText) findViewById(R.id.edit_txt_SaveAs); 
    btn_SaveAs = (Button) findViewById(R.id.btn_SaveAs); 
    btn_SaveAs.setOnClickListener(this); 
    btn_Cancel = (Button) findViewById(R.id.btn_Cancel); 
    btn_Cancel.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
     // Write code for all the buttons on click methods 
} 
} 

Тогда вы можете позвонить пользовательский диалог в вашем основном классе, используя следующий код:

SaveDialog save_dialog = new SaveDialog(saving_activity); 
save_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
save_dialog.show(); 
2

Вы не можете удалить границу из диалогового окна предупреждения.

использование этого

public class ActivityIndicator extends Dialog implements android.view.View.OnClickListener{ 
protected static final String TAG = InfoIndicator.class.getName(); 
ImageView close; 
WebView info; 

     public ActivityIndicator (Context context,String information) 
     { 
      super(context, android.R.style.Theme_Translucent_NoTitleBar); 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 
      setContentView(R.layout.info); 
      setCancelable(true); 
      } 
} 

и попробовать это ниже функции для шоу, скрыть и ясный диалог

private static ActivityIndicator activityIndicator; 

public static void hideActivityViewer() { 
    if (activityIndicator != null) { 
     activityIndicator.dismiss(); 
    } 
    activityIndicator = null; 
} 

public static void showActivityViewer(Context context) { 
    if (activityIndicator == null) 
    { 
     activityIndicator = new ActivityIndicator(context); 
    } 
    activityIndicator.show(); 

} 
public static void clearDialogs() 
{ 
    activityIndicator = null; 
} 
+0

Hai я хочу отображать мою тему custome только без оповещения о предупреждении диагноза – Satheesh

+0

есть ли возможность удалить предупреждение диалог границы и установить мою собственную тему ... – Satheesh

+0

нет вы не можете удалить диалоговое окно предупреждения –

1

вы можете использовать popwindow для более стиля самостоятельно

Смежные вопросы