0

您好,我正在尝试使用我的一个库中的对象,但我无法传递我的当前上下文。

构造函数是:

public AmbilWarnaDialog(final Context context, int color, OnAmbilWarnaListener listener)

在我的课堂上,我将它用于构造函数:

AmbilWarnaDialog dialog = AmbilWarnaDialog(this, initialColor, new OnAmbilWarnaListener()
                     {

                public void onOk(AmbilWarnaDialog dialog, int[] color) {
                        // color is the color selected by the user.
                }

                public void onCancel(AmbilWarnaDialog dialog) {
                        // cancel was selected by the user
                }
            });

我收到此错误:

The method AmbilWarnaDialog(Settings, int, new AmbilWarnaDialog.OnAmbilWarnaListener(){}) is undefined for the type Settings

我还尝试了 getApplicationContex() 和 Settings.this,但它不起作用。

我的进口是:

import yuku.ambilwarna.AmbilWarnaDialog;
import yuku.ambilwarna.AmbilWarnaKotak;
import yuku.ambilwarna.AmbilWarnaDialog.OnAmbilWarnaListener;
4

3 回答 3

1

试试这个:

Context context;

private methodName(Context context) {
    this.context = context;
}

Activity中的调用方法:

    methodName(this);
于 2013-08-30T14:00:01.233 回答
1

您不能直接调用构造函数,要实例化一个类,请使用如下new关键字:

AmbilWarnaDialog dialog = new AmbilWarnaDialog(this, initialColor, new OnAmbilWarnaListener() { ...
于 2013-08-30T14:02:34.447 回答
0

您在 Settings 类中的某处调用此方法(我假设 Settings 不扩展 Context)。你可能正在做这样的事情:

public class MyClass extends Context {

public myMethod(){

    new Settings(){

// the keyword this references to the Settings object instance, not MyClass object instance 
// to reference Context use MyClass.this
// like Henry says below, make sure you use the new keyword to initialize objects
AmbilWarnaDialog dialog = new AmbilWarnaDialog(MyClass.this, initialColor, new OnAmbilWarnaListener() {...}

       }
    }

}

于 2013-08-30T14:11:37.850 回答