SORU
8 Mayıs 2010, CUMARTESİ


Nasıl özel AlertDialog bir Görünüm uygulamak için

Android docs on AlertDialog Bir AlertDialog özel bir görünüm ayarlamak için aşağıdaki komutu ve örnek verir:

Eğer daha karmaşık bir görünüm görüntülemek istiyorsanız, FrameLayout "vücut" ve görünümünüzü ekleyin: . bak

FrameLayout fl = (FrameLayout) findViewById(R.id.body);
fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT));

Öncelikle, add() bir yazım hatası olduğu çok açık ve addView() çıkartılacaktır.

İlk satırı R. kimliği kullanarak kafam karıştı.vücut. Bu AlertDialog body öğesi var gibi görünüyor. ama sadece kod b/c derleme hatası verir giremiyorum. Nerede R. id.vücut tanımlı ya da atanmış olsun ya da her neyse?

İşte benim kod. Oluşturucu setView(findViewById(R.layout.whatever) kullanmak için denedim ama işe yaramadı. Elle şişirmek istemedim çünkü sanıyorum?

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
    .setCancelable(false)
    .setPositiveButton("Go", new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int id) {
        EditText textBox = (EditText) findViewById(R.id.textbox);
        doStuff();
    }
});

FrameLayout f1 = (FrameLayout)findViewById(R.id.body /*CURRENTLY an ERROR*/);
f1.addView(findViewById(R.layout.dialog_view));

AlertDialog alert = builder.create();
alert.show();

CEVAP
23 NİSAN 2011, CUMARTESİ


Doğrudan Düzen İnflater manzaralı oluşturabilirsiniz, tek düzen XML dosyasının adını ve dosya düzeninin KİMLİĞİ kullanmanız gerekir.

XML dosyası bu gibi bir kimliğe sahip olmalıdır:

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

Ve sonra aşağıdaki kodu oluşturucu düzeninizi ayarlayabilirsiniz:

LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.dialog_layout, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(dialoglayout);
builder.show();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • Tek Syndicate

    Tek Syndicat

    23 Temmuz 2008