2016-05-08 2 views
0

У меня есть пользовательский диалог в моем приложении, но когда я нажимаю кнопки диалога, они не работают!Почему пользовательские диалоговые кнопки не работают?

Я хочу, чтобы показать диалоговое окно в одном из пунктов навигации ящика и это код:

dialog = new Dialog(MaterialCardsActivity.this); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setCancelable(true); 
     dialog.setContentView(R.layout.dialog_mail); 
     dialog.show(); 

Как я могу решить это?

Custom_Dialog.java

package com.example.material.amirj; 

import android.app.Dialog; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.view.Window; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 


public class Dialog_Custom extends AppCompatActivity { 

private EditText caption; 
private Dialog dialog; 
private EditText text; 
private Button send,cancel; 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.dialog_mail); 


    dialog = new Dialog(Dialog_Custom.this); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setCancelable(true); 
    dialog.setContentView(R.layout.dialog_mail); 

    caption = (EditText) dialog.findViewById(R.id.txt_caption_dialoge); 
    text = (EditText) dialog.findViewById(R.id.txt_text_dialoge); 
    send = (Button) dialog.findViewById(R.id.btn_send_email); 
    cancel = (Button) dialog.findViewById(R.id.btn_cancel_dialog); 

    send.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Intent i = new Intent(Intent.ACTION_SEND); 
      i.setType("message/rfc822"); 
      i.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
      i.putExtra(Intent.EXTRA_SUBJECT, "" + caption.getText()); 
      i.putExtra(Intent.EXTRA_TEXT, "" + text.getText()); 
      try { 
       startActivity(Intent.createChooser(i, "ارسال ایمیل با ...")); 
      } catch (android.content.ActivityNotFoundException ex) { 
       Toast.makeText(Dialog_Custom.this, "برنامه ای از ازسال ایمیل پشتیبانی نمیکند.", Toast.LENGTH_SHORT).show(); 
      } 
     } 

    }); 
    cancel.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      dialog.dismiss(); 

     } 
    }); 
    dialog.show(); 
} 
} 

dialog_mail.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:padding="16dp" 
android:weightSum="1"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="ارتباط با ما - ایمیل" 
    android:id="@+id/textView2" 
    android:layout_gravity="right" 
    android:textColor="@color/colorPrimary" 
    android:padding="8dp" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:gravity="center" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="ارسال" 
    android:id="@+id/btn_send_email" 
    android:textColor="#ffffff" 
    android:layout_below="@+id/textView2" 
    android:layout_alignRight="@+id/editText" 
    android:layout_alignEnd="@+id/editText" 
    android:layout_marginTop="151dp" 
    android:theme="@style/MyButton" 
    android:allowUndo="true" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="لغو" 
    android:id="@+id/btn_cancel_dialog" 
    android:textColor="@android:color/holo_red_light" 
    style="?android:attr/borderlessButtonStyle" 
    android:layout_alignTop="@+id/btn_send_email" 
    android:layout_toLeftOf="@+id/btn_send_email" 
    android:layout_toStartOf="@+id/btn_send_email" /> 
<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:hintTextAppearance="@style/MyHintText" 
    android:id="@+id/view3" 
    android:layout_below="@+id/textView2" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:focusable="true"> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="عنوان" 
     android:id="@+id/txt_text_dialoge" 
     android:theme="@style/MyEditText" /> 

</android.support.design.widget.TextInputLayout> 

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:hintTextAppearance="@style/MyHintText" 
    android:layout_below="@+id/view3" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:id="@+id/editText" 
    android:layout_above="@+id/btn_cancel_dialog"> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="متن پیام" 
     android:id="@+id/txt_caption_dialoge" 
     android:theme="@style/MyEditText" /> 

</android.support.design.widget.TextInputLayout> 
</RelativeLayout> 

final result but buttons don't work

+0

Вы никогда не вызываете 'dialog.show()' в конце вашего 'onCreate'. как вы видите этот диалог? –

+0

Какая кнопка не работает? отправить или отменить? – Masum

+0

Кроме того, вы пытаетесь показать диалог внутри действия или пытаетесь создать небольшой диалог, например, прозрачную активность? –

ответ

0

Попробуйте это,

dialog_main.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" > 

<Button 
    android:id="@+id/buttonClick" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Click To Show Custom Dialog" /> 

</LinearLayout> 

dialog.xml

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

<ImageView 
    android:id="@+id/imageDialog" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginRight="6dp" /> 

<TextView 
    android:id="@+id/textDialog" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#FFF" 
    android:layout_toRightOf="@+id/imageDialog"/> 

<Button 
    android:id="@+id/okButton" 
    android:layout_width="100px" 
    android:layout_height="wrap_content" 
    android:text="Ok" 
    android:layout_marginTop="5dp" 
    android:layout_marginRight="5dp" 
    android:layout_below="@+id/textDialog" 
    android:layout_toRightOf="@+id/imageDialog" 
    /> 

</RelativeLayout> 

CustomDialog.java

общественный класс CustomDialog расширяет активность {

private Button btnClick; 

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.custom_dialog_main); 

    btnClick = (Button) findViewById(R.id.btnClick); 

    // add listener to button 
    buttonClick.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      // Create custom dialog object 
      final Dialog dialog = new Dialog(CustomDialog.this); 
      // Include dialog.xml file 
      dialog.setContentView(R.layout.dialog); 
      // Set dialog title 
      dialog.setTitle("Custom Dialog"); 

      // set values for custom dialog components - text, image and button 
      TextView text = (TextView) dialog.findViewById(R.id.textDialog); 
      text.setText("Custom dialog"); 
      ImageView image = (ImageView) dialog.findViewById(R.id.imageDialog); 
      image.setImageResource(R.drawable.image0); 

      dialog.show(); 

      Button okButton = (Button) dialog.findViewById(R.id.declineButton); 
      // if decline button is clicked, close the custom dialog 
      okButton.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        // Close dialog 
        dialog.dismiss(); 
       } 
      }); 


     } 

    }); 

    } 

} 

Счастливое кодирование ..!

+0

кнопки не работают снова! –