SORU
12 Kasım 2012, PAZARTESİ


Nasıl android Özel bir İletişim kutusu oluşturmak için?

Aşağıdaki gibi özel bir iletişim kutusu oluşturmak istiyorum

enter image description here

Şunları denedim.

  1. Bir örnek oluşturdumAlertDialog.Builderve özel bir Başlık ve Özel İçeriği Görüntülemek kullanılan ve kullanılmış ama sonuç beklendiği gibi oldu.

  2. Başka bir deneme alt sınıf içinDialogFragmentve onCreateDialog içi iletişim özelleştiren ama sonuç beklendiği gibi oldu.

  3. Sonra normal kullanmaya çalıştımİletişimsınıf. Sonuç beklendiği gibi değil.

Her üç durumda, sorun olduğunda bunu göz ardı başlık görünüm boyutu iletişim olarak beklenen ve ne zaman kullanırım Başlık görüntülemek sonuç var. kalın bir sınır etrafında içeriği (gerçekten kötü görünüyor). Şimdi aklımda iki soru var...

  1. Bunu nasıl elde edebilirsiniz? Zaten o kadar çok şey denedim gibi, doğrudan bir cevap daha fazla takdir edilecektir.

  2. Android uygulaması hata veya bir uyarı iletişim kutusunu göstermek için en iyi yolu nedir?

EDİT Android Developer Documentation kullanıcı için Hata / Uyarı Mesajları göstermek için ya DialogFragments veya Kutuları kullanmalıyız önerir. Ancak bir noktada söylediler

Eğer özel bir iletişim istiyorsanız, İletişim API kullanmak yerine, bir iletişim olarak Faaliyet göstermek yerine. ipucu: Sadece bir etkinlik oluşturun ve Tema için bir tema belirleyin.Holo.Manifest öğesinin iletişim.

Bunun anlamı nedir? Çok fazla hata iletisi göstermelik bir Aktivite kullanmak için?? değil mi?

CEVAP
12 Kasım 2012, PAZARTESİ


Burada basit bir İletişim oluşturmak var.

gibi : enter image description here

custom_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="80dp"
    android:background="#3E80B4"
    android:orientation="vertical" >

    <TextView
        android:id="@ id/txt_dia"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="10dp"
        android:text="Do you realy want to exit ?"
        android:textColor="@android:color/white"
        android:textSize="15dp"
        android:textStyle="bold"/>


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="#3E80B4"
        android:orientation="horizontal" >

        <Button
            android:id="@ id/btn_yes"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:background="@android:color/white"
            android:clickable="true"
            android:text="Yes"
            android:textColor="#5DBCD2"
            android:textStyle="bold" />

        <Button
            android:id="@ id/btn_no"
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:layout_marginLeft="5dp"
            android:background="@android:color/white"
            android:clickable="true"
            android:text="No"
            android:textColor="#5DBCD2"
            android:textStyle="bold" />
    </LinearLayout>

</LinearLayout>

7 ** ve implements OnClickListener

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

  public Activity c;
  public Dialog d;
  public Button yes, no;

  public CustomDialogClass(Activity a) {
    super(a);
    // TODO Auto-generated constructor stub
    this.c = a;
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.custom_dialog);
    yes = (Button) findViewById(R.id.btn_yes);
    no = (Button) findViewById(R.id.btn_no);
    yes.setOnClickListener(this);
    no.setOnClickListener(this);

  }

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btn_yes:
      c.finish();
      break;
    case R.id.btn_no:
      dismiss();
      break;
    default:
      break;
    }
    dismiss();
  }
}

Nasıl İletişim Çağrı ?

R.id.TXT_Exit:
CustomDialogClass cdd=new CustomDialogClass(Values.this);
cdd.show();  

Güncelleştirmeleri

Uzun zaman sonra bir arkadaşım bana kavisli şekli şeffaf arka plan ile iletişim yapmak istedi. Yani, Burada bunu uygulamak zorundayım.

enter image description here

Kavisli Yapmak curve_shap.XML ayrı olarak aşağıda oluşturmak için gereken şekil

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

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

    <stroke
        android:width="2dp"
        android:color="#ffffff" />

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

</shape>

Şimdi, bu curve_shap.XML ana görünümünde düzeninize ekleyin. Benim durumumda 14* *ihtiyacım var

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="80dp"
        android:background="@drawable/curve_shap"
        android:orientation="vertical" >
...
</LinearLayout>

Nasıl bu ara ?

CustomDialogClass cdd = new CustomDialogClass(MainActivity.this);
cdd.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
cdd.show();

Sizin için umarım işe yarar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LiquidMusick

    LiquidMusick

    23 Aralık 2010
  • TantalizingTrance

    TantalizingT

    15 ŞUBAT 2009
  • Utah Valley Online

    Utah Valley

    9 AĞUSTOS 2010