2012-01-14 23 views
5

AlertDialog'daki pozitif ve negatif düğmeleri özelleştirmek mümkün mü? Varsayılan ile varsayılan ve negatif varsayılan görünümünü değiştirmem gerekiyor.AlertDialog'daki pozitif ve negatif düğmeleri özelleştirmek mümkün mü?

.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {... 
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {... 

Birisi bana bunun nasıl yapılacağını söyler mi?

+3

Özel bir iletişim kutusu oluşturmak gerekecek. :/Bulabildiğim en basit öğretici. http://i.thiyagaraaj.com/articles/android-articles/customdialogboxpopupusinglayoutinandroid – JustinDanielson

cevap

1

bunları değiştirmek isterseniz, senin gerekli düzen ile etkinliği kullanılarak önermek ve bunları katacak = Dialog sizin aktivitede, bunun yerine iletişim uyarı ait iletişim kullanabilirsiniz özelleştirmek isterseniz Manifest dosyası

1

yılında burada örnek kodunu

final Dialog dialog = new Dialog(ThisweekActivity.this, android.R.style.Theme_Translucent_NoTitleBar); 
    View view = LayoutInflater.from(ThisweekActivity.this).inflate(R.layout.issue_cover_prompt_layout, null); 
    view.findViewById(R.id.close_btn).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      dialog.dismiss(); 
     } 
    }); 
    ImageView img = (ImageView) view.findViewById(R.id.issue_cover_img); 
    img.setImageBitmap(issue.getCoverImage()); 

    dialog.setContentView(view); 
    dialog.show(); 

Eğer iletişim düzenini ayarlamak ve

1

Yuo iletişim kutusunda her görünümü ayarlayabilirsiniz tıklama Listner eklemek ayarlayabilirsiniz olduğunu. İki düğme ile görünümü ayarlayabilir ve pozitif & negatif düğmelerini ayarlamayın.

örnek:

AlertDialog.Builder builder = 
      new AlertDialog.Builder(this); 

View dialogView = LayoutInflater.from(this) 
      .inflate(R.layout.my_layout, null); 

builder.setView(dialogView); 
+0

bağlam dışı! –

+0

@Jivraj S Shekhawat Tamam, her neyse. Daha iyi bir cevap verebilmeniz için lütfen –

5
public class ComentarDialog extends DialogFragment{ 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 

    builder.setMessage("Mensaje de alerta") 
      .setTitle("Comentar") 
      .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 

       } 
      }) 
      .setNegativeButton("CANCELAR", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 

       } 
      }); 

    return builder.create(); 
} 

@Override 
public void onStart() { 
    super.onStart(); 

    //Personalizamos 

    Resources res = getResources(); 

    //Buttons 
    Button positive_button = ((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_POSITIVE); 
    positive_button.setBackground(res.getDrawable(R.drawable.btn_selector_dialog)); 

    Button negative_button = ((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_NEGATIVE); 
    negative_button.setBackground(res.getDrawable(R.drawable.btn_selector_dialog)); 

    int color = Color.parseColor("#304f5a"); 

    //Title 
    int titleId = res.getIdentifier("alertTitle", "id", "android"); 
    View title = getDialog().findViewById(titleId); 
    if (title != null) { 
     ((TextView) title).setTextColor(color); 
    } 

    //Title divider 
    int titleDividerId = res.getIdentifier("titleDivider", "id", "android"); 
    View titleDivider = getDialog().findViewById(titleDividerId); 
    if (titleDivider != null) { 
     titleDivider.setBackgroundColor(color); 
    } 
} 
} 
+0

Mükemmel yanıtı verin. paylaşım için teşekkürler. :) –

+0

FYI 'button.setBackground()' ... API seviyesi 16 gerektirir – estoke

İlgili konular