标签: android-alertdialog

Android:从AlertDialog onClick传递变量

当用户在AlertDialog中单击"确定"时,我想将变量传递给外部函数.我正在尝试这个例子,但它不会识别变量(Yup).

public final void deleteBookmark(Cursor cur, int pos) {

        //fetching info
        ((Cursor) cur).moveToPosition(pos);
        String bookmark_id = ((Cursor) cur).getString(((Cursor) cur).getColumnIndex(Browser.BookmarkColumns._ID));
        String bookmark_title = ((Cursor) cur).getString(((Cursor) cur).getColumnIndex(Browser.BookmarkColumns.TITLE));

        //asking user to approve delete request
        AlertDialog alertDialog = new AlertDialog.Builder(Dmarks.this).create();
        alertDialog.setTitle("Delete" + " " + bookmark_title);
        alertDialog.setIcon(R.drawable.icon);
        alertDialog.setMessage("Are you sure you want to delete this Bookmark?");
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int which) {
                 **String Yup = "yes";**
            } });
        alertDialog.setButton2("Cancel", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int which) { …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

2
推荐指数
1
解决办法
7737
查看次数

Android:来自AlertDialog的startActivity()

我正在尝试使用AlertDialog中的Button来查看网页.

问题是这个AlertDialog位于一个扩展ItemizedOverlay并且不扩展Activity的类中,所以Eclipse强调它并给出以下错误:

方法startActivity()未定义类型new DialogInterface.OnClickListener(){}

我想从PositiveButton,NeutralButton和NegativeButton发起活动,但我无法做到.

如果你需要更多的上下文,主Activity是一个带有一些ItemizedOverlay的MapView,我想发布一个带有方向或其他活动的网页.

android android-intent android-alertdialog

2
推荐指数
1
解决办法
1万
查看次数

自定义对话框,看起来像AlertDialog

我正在创建一个自定义对话框(alertdialog不够灵活,不能满足我的需求).我希望它看起来像一个AlertDialog,具有良好的已知的AlertDialog标题(见下图).

我在自定义对话框中也有一个列表视图,我希望它看起来像AlertDialog的列表视图.我怎么能这样做?

到目前为止,我在attr中找到了alertDialogTheme和alertDialogStyle.上课,但我不知道如何使用它.

使用自定义对话框应该是什么样子: listview的典型alertdialog

看起来像什么(黑色背景,错误的标题): 习惯

我的布局很基本,看起来像这样:

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

    <ListView
        android:id="@+id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

listview包含使用此布局的项目

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:baselineAligned="false"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:src="@drawable/icon_noimage" />

    <TextView
        android:id="@+id/text"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:ellipsize="end"
        android:singleLine="true"
        android:textColor="#ffffff"
        android:textSize="18dp" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

--->使用自定义视图的alerdialog解决方法,但现在我遇到了以下问题:

gapsproblem

android dialog attr android-alertdialog

2
推荐指数
1
解决办法
1946
查看次数

AlertDialog show = new AlertDialog.Builder(this)是Undefined

该应用程序拦截短信息并显示一条Dialog消息.

但是我无法DialogTest课堂上解决我的错误.我究竟做错了什么?

(我还包括了我的其他2个文件).

Eclipse中显示的错误: AlertDialog.Builder(Test) is undefined


test.java

package com.example.firstapp;

import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;

public class Test extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent) 
    {
        //---get the SMS message passed in---
        Bundle bundle = intent.getExtras();        
        SmsMessage[] msgs = null;
        String str = "";            
        if (bundle != null)
        {
            //---retrieve the SMS message received---
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];            
            for …
Run Code Online (Sandbox Code Playgroud)

java sms android this android-alertdialog

2
推荐指数
1
解决办法
2万
查看次数

AccountAuthenticatorActivity上的getSupportFragmentManager

如何将getSupportFragmentManager()传递给AccountAuthenticatorActivity中的外部库?

我需要使用android-styled-dialogs设置自定义对话框:https://github.com/inmite/android-styled-dialogs

android accountmanager android-alertdialog android-support-library

2
推荐指数
1
解决办法
1787
查看次数

在单选警报对话框中启用/禁用肯定按钮

如果您可以帮助我,我将提供一个包含3个选项的单选警报对话框。我最初禁用了NEXT按钮(未选择任何选项)。当用户选择任何选项时,我要启用“下一步”按钮。这是我尝试的代码。

int involvementInIncident;

case DIALOG_ADD_A_PERSON_INVOLVEMENT_ONE: 

        builder.setTitle("Involvement in this Incident");   
        builder.setSingleChoiceItems(incidentInvolvement, -1,
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        involvementInIncident = which;                          
                        //involvementInIncident = ((AlertDialog)dialog).getListView().getCheckedItemPosition();
                        Toast.makeText(getApplicationContext(),""+ involvementInIncident, Toast.LENGTH_SHORT).show();


                    }
                });         
        builder.setPositiveButton("Next",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {                    
                        //Toast.makeText(getApplicationContext(),""+ involvementInIncident, Toast.LENGTH_SHORT).show();
                        showDialog(DIALOG_ADD_A_PERSON_PERSON_TYPE_TWO);

                    }

                });
        builder.setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();


                    }
                });     
        AlertDialog alertInvolvement = builder.create();
        alertInvolvement.show();             
        final Button buttonPositiveInvolvement = alertInvolvement.getButton(AlertDialog.BUTTON_POSITIVE);
        buttonPositiveInvolvement.setEnabled(false);

        if(involvementInIncident == 0 …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

2
推荐指数
1
解决办法
3139
查看次数

Android透明DialogFragment

我有一个对话框片段,在WidgetConfig活动运行时显示.该对话框显示用户可以选择某些项目的列表.我希望此对话框是透明的,以便您可以在对话框的背景中看到主屏幕.这就是我目前在WidgetConfig活动中所做的事情:

    DialogFragment dialog = new myChooserDialog();  
    getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));        
    dialog.show(getFragmentManager(), "dialog");    
Run Code Online (Sandbox Code Playgroud)

编辑:myChooserDialog的代码:

public class MyChooserDialog extends DialogFragment{

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        choices = getResources().getStringArray(R.array.city_choices);
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());       
        builder.setTitle(getResources().getString(R.string.widget_dialog_chooser_title));
        builder.setPositiveButton(getResources().getString(R.string.widget_dialog_chooser_posBtn), this);
        builder.setNegativeButton(getResources().getString(R.string.widget_dialog_chooser_negBtn), this);   
        builder.setSingleChoiceItems(choices, -1, this);
        return builder.create();
    }


    @Override
    public void onClick(DialogInterface dialog, int which) {
        switch (which) {
        case DialogInterface.BUTTON_POSITIVE:   
            //doing magic tricks
            break;

        case DialogInterface.BUTTON_NEGATIVE:
            dialog.dismiss();
            break;

        default:
            //more magic
            break;
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

目前,背景全黑.我在这做错了什么?

马库斯

android android-alertdialog android-dialogfragment

2
推荐指数
1
解决办法
7558
查看次数

如何在AlertDialog中链接消息的一部分?

是否可以使对话框消息的一部分成为链接?并将点击侦听器分配给该部分?

假设我有一个这样的对话框:

String message = "Hello, click here for more info";
String messageClickable = "click here";

new AlertDialog.Builder(this)
    .setMessage(message)
    .setPositiveButton("Ok", null)
    .show();
Run Code Online (Sandbox Code Playgroud)

如何使messageClickable零件可点击?我研究了该课程,Linkify但我只能找到addLinks适用于实际链接或电话号码等的方法。

string android android-alertdialog onclicklistener

2
推荐指数
1
解决办法
1025
查看次数

support.v7.app.AlertDialog在dismiss上抛出NullPointerException

我更新AppCompat到新发布的版本22.1.0并将我更改AlertDialogsupport.v7.app.AlertDialog.但是在Lollipop设备上,它会抛出以下异常dismissDialog().

java.lang.NullPointerException:   attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
  at android.support.v7.internal.app.WindowDecorActionBar.getDecorToolbar(WindowDecorActionBar.java:248)
  at android.support.v7.internal.app.WindowDecorActionBar.init(WindowDecorActionBar.java:201)
  at android.support.v7.internal.app.WindowDecorActionBar.<init>(WindowDecorActionBar.java:184)
  at android.support.v7.app.AppCompatDeleg  ateImplV7.cre  ateSupportActionBar(AppCompatDelegateImplV7.java:176)
  at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:85)
  at android.support.v7.app.AppCompatDelegateImplV7.onStop(AppCompatDeleg  ateImplV7.java:221)
  at android.support.v7.app.AppCompatDialog.onStop(AppCompatDialog.java:108)
  at android.app.Dialog.dismissDialog(Dialog.java:438)
  at android.app.Dialog.dismiss(Dialog.java:414)
  at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:157)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:145)
  at android.app.ActivityThread.main(ActivityThread.java:5834)
  at java.lang.reflect.Method.invoke(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
Run Code Online (Sandbox Code Playgroud)

我如何解决它?

(较低版本的设备似乎运行良好.这只发生在Lollipop)

+ 我没有dismiss()在我的代码中明确调用.当按钮被后退按钮或正/负按钮关闭时,该对话框将抛出异常.

++这是我使用v7.app.AlertDialog的代码.谢谢.

import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.support.v4.app.DialogFragment; …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-alertdialog

2
推荐指数
1
解决办法
5842
查看次数

按下后退按钮时避免警报对话框关闭?

首先我要说的是,这是通过查看教程来完成的.这是我从广播接收器呼叫的自定义警报对话活动部分.唯一的问题是后退按钮单击.一旦Alert对话框活动开始,当我按下后退按钮时它就会关闭.

 public class AlertDialogActivity extends Activity {
    @Override 
 protected void onCreate(Bundle savedInstanceState) 
 { 
    super.onCreate(savedInstanceState);
    this.setFinishOnTouchOutside(false);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
    setContentView(R.layout.activity_inmsgdialog);
 }
  @Override
public void onBackPressed()
{
    super.onBackPressed();
    Toast.makeText(getApplicationContext(), "Back Pressed", Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)

我试过了onBackPressed,我能看到吐司的消息,但活动正在关闭.

android back broadcastreceiver android-alertdialog

2
推荐指数
1
解决办法
818
查看次数