2014-10-30 68 views
0

我有一個包含一個操作欄「關於」和「圖像」和「設置」時,「關於被觸摸」自定義對話框按鈕打開,我已經用在XML文件ID「dialogBu​​tton一個按鈕「的Android自定義對話框與辭退按鈕

基本上,我希望當它觸及到關閉對話框。

Actionbar.java

package com.example.actionbar; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.Dialog; 
import android.content.DialogInterface; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.widget.Button; 

public class ActionBar extends Activity { 

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

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.testmenu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    super.onOptionsItemSelected(item); 
    switch(item.getItemId()){ 
    case R.id.about: 
     aboutMenuItem(); 
     break; 
    case R.id.settings: 
     settingsMenuItem(); 
     break; 
    case R.id.item3: 
     item3MenuItem(); 
     break; 
    } 
    return true; 
} 
private void aboutMenuItem(){ 
    final Dialog d = new Dialog(this); 
    d.setContentView(R.layout.dialog_custom); 
    d.setTitle("Custom Dialog");   
    d.findViewById(R.id.dialogButton); 
    d.show(); 
} 

private void settingsMenuItem() { } 

private void item3MenuItem() { } 

}

和我的XML文件,dialog_custom.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<WebView 
    android:id="@+id/dialog_webview" 
    android:layout_width="match_parent" 
    android:layout_height="68dp" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello Dialog" /> 

<Button 
    android:id="@+id/dialogButton" 
    android:layout_width="100dp" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:layout_marginRight="5dp" 
    android:text="OK" /> 

+0

什麼是錯誤?或提問題.. – Shvet 2014-10-30 05:01:04

+0

http://androidexample.com/Custom_Dialog_-_Android_Example/index.php?view=article_discription&aid=88&aaid=111 – 2014-10-30 05:05:15

+0

我想添加一個按鈕,辭退,在定製對話框的作品,我已經添加的自定義按鈕,但是如何讓它工作,所以當用戶觸摸按鈕時,對話框將被解除 – 2014-10-30 05:07:00

回答

1

嘗試這個

private void aboutMenuItem(){ 
    final Dialog d = new Dialog(this); 
    d.setContentView(R.layout.dialog_custom); 
    d.setTitle("Custom Dialog"); 
    Button connect = (Button) d.findViewById(R.id.dialogButton); 

    connect.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      d.dismiss(); 
     } 
    }); 
    d.show(); 
} 
0

你可以試試這個..

final Dialog dialog = new Dialog(context); 
     dialog.setContentView(R.layout.custom); 
     dialog.setTitle("Title..."); 

     // set the custom dialog components - text, image and button 
     TextView text = (TextView) dialog.findViewById(R.id.text); 
     text.setText("Android custom dialog example!"); 

     Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK); // find button with dialog's preference.. 

     // if button is clicked, close the custom dialog 
     dialogButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
      } 
     }); 

     dialog.show(); 
1

你可以做這樣的事情在你的aboutMenuItem()函數。

 final Dialog dialog = new Dialog(this); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.getWindow().setBackgroundDrawable(
       new ColorDrawable(Color.TRANSPARENT)); 
     View view = getLayoutInflater().inflate(R.layout.yourCustomDialogLayout, 
       null); 

     Button dialogButton = (Button) view.findViewById(R.id.dialogButton); 

     dialogButton .setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
      } 
     }); 
     dialog.setContentView(view); 
     dialog.setCancelable(false); 
     dialog.show();