Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 复选框和AlerDialog_Java_Android_Checkbox_Android Alertdialog - Fatal编程技术网

Java 复选框和AlerDialog

Java 复选框和AlerDialog,java,android,checkbox,android-alertdialog,Java,Android,Checkbox,Android Alertdialog,我必须在java alert中打开一个对话框,通知用户如果想删除广告,必须购买付费版本的应用程序。。。我做了两个java文件。。还有一个叫做dialogue,从中调用上面的文件和布局xml中定义的其他元素。。。问题是,如果我把新的对话框(这)给我的错误。。。相反,如果当前通过单击复选框运行应用程序,则会使应用程序崩溃。崩溃后的复选框已检查应存在。。。复选框不能是可选中的 package com.X.XX.XXX; import android.app.AlertDialog; import

我必须在java alert中打开一个对话框,通知用户如果想删除广告,必须购买付费版本的应用程序。。。我做了两个java文件。。还有一个叫做dialogue,从中调用上面的文件和布局xml中定义的其他元素。。。问题是,如果我把新的对话框(这)给我的错误。。。相反,如果当前通过单击复选框运行应用程序,则会使应用程序崩溃。崩溃后的复选框已检查应存在。。。复选框不能是可选中的

package com.X.XX.XXX;


import android.app.AlertDialog;
import android.content.Context;

public class Dialogo {

    public static final int BUY = 1000;
    AlertDialog.Builder builder;

    public void mostra(int Id) {
        // TODO Auto-generated method stub
        switch(Id)
        {
        case BUY:
            builder.setTitle("Title");
            builder.setMessage("TEXT ");
            builder.setNegativeButton("CLOSE", null);
            builder.setPositiveButton("BUY", null);
            break;
        }
        builder.create().show();
    }

}


在使用生成器变量之前,必须对其进行初始化。 因此,请确保将上下文也传递给函数,首先按如下方式声明它:

public void mostra(Context context, int Id) {
    builder = new AlertDialog.Builder(context);
dialogo.mostra(Settings.this, Dialogo.BUY);
然后这样称呼它:

public void mostra(Context context, int Id) {
    builder = new AlertDialog.Builder(context);
dialogo.mostra(Settings.this, Dialogo.BUY);
完整的工作示例:

package com.X.XX.XXX;

import android.app.AlertDialog;
import android.content.Context;

public class Dialogo {
    public static final int BUY = 1000;

    public void mostra(Context context, int Id) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        // TODO Auto-generated method stub
        switch(Id)
        {
        case BUY:
            builder.setTitle("Title");
            builder.setMessage("TEXT ");
            builder.setNegativeButton("CLOSE", null);
            builder.setPositiveButton("BUY", null);
            break;
        }
        builder.create().show();
    }
}


package com.X.XX;
import com.X.XX.XXX.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

public class Settings extends PreferenceActivity{
    CheckBoxPreference no_ads;
    Dialogo dialogo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        this.addPreferencesFromResource(R.xml.settings);
        dialogo = new Dialogo(); 

        no_ads = (CheckBoxPreference) this.findPreference("no_ads");
        no_ads.setOnPreferenceClickListener(new OnPreferenceClickListener(){
            @Override
            public boolean onPreferenceClick(Preference preference) {
                // TODO Auto-generated method stub
                dialogo.mostra(Settings.this, Dialogo.BUY);
                ((CheckBoxPreference)preference).setChecked(false);
                return false;
            }
        });
    }
}

在使用生成器变量之前,必须对其进行初始化。 因此,请确保将上下文也传递给函数,首先按如下方式声明它:

public void mostra(Context context, int Id) {
    builder = new AlertDialog.Builder(context);
dialogo.mostra(Settings.this, Dialogo.BUY);
然后这样称呼它:

public void mostra(Context context, int Id) {
    builder = new AlertDialog.Builder(context);
dialogo.mostra(Settings.this, Dialogo.BUY);
完整的工作示例:

package com.X.XX.XXX;

import android.app.AlertDialog;
import android.content.Context;

public class Dialogo {
    public static final int BUY = 1000;

    public void mostra(Context context, int Id) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        // TODO Auto-generated method stub
        switch(Id)
        {
        case BUY:
            builder.setTitle("Title");
            builder.setMessage("TEXT ");
            builder.setNegativeButton("CLOSE", null);
            builder.setPositiveButton("BUY", null);
            break;
        }
        builder.create().show();
    }
}


package com.X.XX;
import com.X.XX.XXX.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

public class Settings extends PreferenceActivity{
    CheckBoxPreference no_ads;
    Dialogo dialogo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        this.addPreferencesFromResource(R.xml.settings);
        dialogo = new Dialogo(); 

        no_ads = (CheckBoxPreference) this.findPreference("no_ads");
        no_ads.setOnPreferenceClickListener(new OnPreferenceClickListener(){
            @Override
            public boolean onPreferenceClick(Preference preference) {
                // TODO Auto-generated method stub
                dialogo.mostra(Settings.this, Dialogo.BUY);
                ((CheckBoxPreference)preference).setChecked(false);
                return false;
            }
        });
    }
}

请张贴日志。这是日志,对不起。。。请张贴日志。这是日志,对不起。。。在这里继续给我错误dialogo.mostra(PreferenceActivity.this,dialogo.BUY);假设“类型首选项活动的封闭实例在范围内不可访问”,我在第一个java文件中放入了您发布的代码部分,在第二个java文件中放入了调用。我快发疯了:-(我已经编辑了我的答案,特别是第二部分--现在试试。非常好…谢谢你的朋友…那一行不再报告错误,但现在这里有一个错误dialogo.mostra(dialogo.BUY);:-如果你更改了mostra方法的签名,你每次调用它都必须传递上下文,因此dialogo.mostra(dialogo.BUY)是无效的。对不起,我试着像你告诉我的那样传递上下文,但我得到了一个错误…我把dialogo.mostra(上下文)除此之外,我尝试了许多其他组合,但我总是出错…我的头撞了十多分钟…我希望你能帮我:-)谢谢你继续给我错误在这里dialogo.mostra(PreferenceActivity.this,Dialogo.BUY);说“没有类型首选项活动的封闭实例在作用域中是可访问的”,我将您发布的代码的第一个java文件和第二个调用放入其中。我快发疯了:-(我已经编辑了我的答案,特别是第二部分--现在试试。非常好…谢谢你的朋友…那一行不再报告错误,但现在这里有一个错误dialogo.mostra(dialogo.BUY);:-如果你更改了mostra方法的签名,你每次调用它都必须传递上下文,因此dialogo.mostra(dialogo.BUY)是无效的。对不起,我试着像你告诉我的那样传递上下文,但我得到了一个错误…我把dialogo.mostra(上下文)除此之外,我尝试了许多其他组合,但我总是得到错误…我的头撞了十多分钟…我希望你能帮助我:-)谢谢