标签: android-dialog

在onCreate()中调用Dialogs时显示黑屏

我现在在几个不同的应用程序中遇到了这个问题,我似乎无法找到解决方案.

如果,在onCreate()中Activity,我启动了一个使用对话框主题的活动,它不会在屏幕上绘制任何内容......整个屏幕保持黑色.所有的观点都在那里(例如,我可以点击EditText应该在哪里,它会给我键盘),它们只是不可见.

有人有主意吗?

愚蠢的简单例子,为了好玩:

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);
        startActivityForResult(new Intent(this, CredentialsInputActivity.class), 1);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        // do some crap with the result, doesn't really matter what
    }
}
Run Code Online (Sandbox Code Playgroud)

CredentialsInputActivity是非常直接的...只是扩展Activity@android:style/Theme.Dialog在清单文件中设置主题.

android android-theme android-dialog

5
推荐指数
1
解决办法
3436
查看次数

Android VMD MySQL插入和显示对话框

我试图从Android应用程序进行简单的插入.我可以php通过连接从浏览器运行我的脚本?entry="Sample value from browser",但是当我从Android运行应用程序时,我没有插入.

这是我调用使用JSON并实现AsyncTask的insert类的地方:

package us.jtaylorok.android.sqlite.first;

import java.util.ArrayList;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;

public class RemoteInsert extends AsyncTask<Void, String,String >{

    protected String TAG;
    protected Context context;
    protected String input;
    protected ProgressDialog progressDialog;

    public RemoteInsert(String i,Context c){
        this.input = i;
        this.context = c;
    }


    protected void onPreExecute() {
        //ProgressDialog progressDialog; // = new ProgressDialog(context);

        //progressDialog=ProgressDialog.show(,"Please Wait..","Sending data …
Run Code Online (Sandbox Code Playgroud)

php java android android-asynctask android-dialog

5
推荐指数
1
解决办法
241
查看次数

具有自定义视图的AlertDialog不会"调整大小"

我遇到了AlertDialog和自定义内容/视图的问题.简单地说,当打开软键盘时,AlertDialog不会自行调整大小.以下屏幕截图显示了我的问题以及我想要实现的目标:

当前行为(左)和想要的行为(右)

目前的行为 想要的行为

我知道还有一些其他线程在SO上有类似的问题.不幸的是,所提供的解决方案都不适用于我.按照我的示例代码:

XML

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        </EditText>
    </LinearLayout>

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

Java - CustomAlertDialog.class

public class CustomAlertDialog extends AlertDialog{

    private Context context;

    public CustomAlertDialog(Context context) {
        super(context);
        this.context = context;
    }

    public void buildDialog(){
        LayoutInflater inflater = getLayoutInflater();
        View layout = inflater.inflate(R.layout.dialog_content, null);
        builder = new AlertDialog.Builder(context);
        builder.setTitle("EditText");
        builder.setView(layout);
        builder.setPositiveButton("Ok", new OnClickListener() {

            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                dismiss();
            }
        });
        builder.create();
    }

    public …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-alertdialog android-dialog

5
推荐指数
1
解决办法
4061
查看次数

在android 2.3 GingerBread中创建弹出菜单

我是android的中级程序员.现在我正在开发一个有视图的应用程序.当我点击该视图时,我必须显示一个弹出菜单.

我从android开发者网站获得了以下代码

public void showPopup(View v) {
    PopupMenu popup = new PopupMenu(this, v);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.actions, popup.getMenu());
    popup.show();
}
Run Code Online (Sandbox Code Playgroud)

但是此代码仅适用于API 11及更高版本.

任何人都可以帮助我,以便我可以制作一个支持GingerBread的弹出菜单吗?

android popup android-dialog

5
推荐指数
1
解决办法
7492
查看次数

当按下后,AlertDialog被解雇

我正在使用具有以下属性的警报对话框.问题是当我单击后退按钮或触摸对话框外我不想要那个对话框是不行的.我怎么能解决这个问题因为setCancelable没有帮助.

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage(R.string.check_internet);
    builder.setCancelable(false);
Run Code Online (Sandbox Code Playgroud)

android android-dialog android-dialogfragment

5
推荐指数
1
解决办法
8603
查看次数

阻止ProgressDialog被onClick解雇

我使用ProgressDialog向用户显示他必须等待并且在用户必须等待时使我的应用程序的表面"不可触及".我在progressDialog中添加了一个Button,如果某些条件为真,它应该启动一些操作.问题是,每次用户按下按钮时,progressDialog都会自动被解除.即使没有触发任何动作.如何在调用onClick时阻止progressDialog被解雇?

感谢和问候

编辑:

    connectingDialog = new ProgressDialog(this);
    connectingDialog.setCancelable(false);
    connectingDialog.setCanceledOnTouchOutside(false);
    connectingDialog.setButton(DialogInterface.BUTTON_NEUTRAL, "start", new DialogInterface.OnClickListener(){

        @Override
        public void onClick(DialogInterface arg0, int arg1) {
            /*if(isPrepared)
                startGame();*/
            connectingDialog.show(); // does not work, too
        }

    });
    connectingDialog.show();
Run Code Online (Sandbox Code Playgroud)

android progressdialog android-button android-dialog onclicklistener

5
推荐指数
1
解决办法
1711
查看次数

Android对话框 - 自定义背景而不是变暗或模糊

我已经创建了自己的自定义对话框,它工作正常,但我想将灰色背景更改为自定义图案(例如图像文件或xml形状).我怎样才能做到这一点?
请注意,我不想改变调光强度,但我只想要,这种调光可以用图案代替

android android-dialog

5
推荐指数
1
解决办法
2758
查看次数

DialogFragment - 获取对话框的宽度

我试图获得DialogFragment运行时的宽度,我尝试了两种失败的方法.

第一:onCreateDialog创建对话框后的内部

public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    ...
    ...
    AlertDialog dialog =  builder.create();
    width = dialog.getWindow().getAttributes().width;
    return dialog;
}   
Run Code Online (Sandbox Code Playgroud)

width 设置为-1

第二:

public void onStart() {
    width = getDialog().getWindow().getAttributes().width;
}
Run Code Online (Sandbox Code Playgroud)

width 设为-2

android android-dialog android-dialogfragment

5
推荐指数
1
解决办法
939
查看次数

Android:将参数传递给Alert Dialog

我正在显示一个带有确定/取消按钮的简单警报对话框.当用户单击"确定"时,会运行一些代码 - 这需要一个参数.

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
        MainActivity.this);
        alertDialogBuilder
        .setTitle("Are you sure?")
        .setCancelable(false)
        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //TODO: Do something with parameter.
            }
        })
        .setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        dialog.cancel();

                    }
                });

// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();

// show it
alertDialog.show();
Run Code Online (Sandbox Code Playgroud)

如何将参数传递给AlertDialog?

android android-ui android-dialog

5
推荐指数
1
解决办法
8295
查看次数

没有对话框的Android对话框setNegativeButton

好奇心问题在这里。

我使用了很多对话框构建器,大多数情况下,我的否定取消按钮除了关闭对话框外什么也不做。我在网上随处可见的代码是这样的:

builder.setNegativeButton(
    "cancel",
    new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

我碰巧发现这段代码做的完全一样:

builder.setNegativeButton("cancel", null);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:这是一个不习惯手动关闭对话框的坏习惯吗?如果是,为什么呢?

android android-dialog

5
推荐指数
1
解决办法
3499
查看次数