Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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 在非活动类中使用getContentResolver()和getWindow()_Java_Android_Xml - Fatal编程技术网

Java 在非活动类中使用getContentResolver()和getWindow()

Java 在非活动类中使用getContentResolver()和getWindow(),java,android,xml,Java,Android,Xml,我有一个扩展AlertDialog.Builder的类,我想使用getContentResolver()和getWindow(),但eclipse给了我以下消息: 类型MYCLASS的方法getContentResolver()未定义 类型MYCLASS的方法getWindow()未定义 如何解决此问题?使用AlertDialog.Builder.getContentResolver()和AlertDialog.Builder.getWindow()getWindow()是对话框类的方法,而不是

我有一个扩展AlertDialog.Builder的类,我想使用getContentResolver()和getWindow(),但eclipse给了我以下消息: 类型MYCLASS的方法getContentResolver()未定义 类型MYCLASS的方法getWindow()未定义


如何解决此问题?

使用
AlertDialog.Builder.getContentResolver()
AlertDialog.Builder.getWindow()
getWindow()
是对话框类的方法,而不是对话框生成的方法

像这样试试

AlertDialog.Builder bld= new AlertDialog.Builder(activity);AlertDialog alt= bld.show();
WindowManager.LayoutParams lp = alt.getWindow().getAttributes();lp.dimAmount = 0.0F;
dlg.getWindow().setAttributes(lp);

如果在所需非活动类Example的方法内声明上下文,则始终可以得到该结果

  public class A 
  {
   ....
   .... 
   public PassInfo(Context context)
      {
        ContentResolver = context.getContentResolver();
        ...........
        ...........
       }
   }

对于类型AlertDialog.Builder,未定义方法getWindow()。getContextResolver()的相同消息。您必须在AlertDialog.Builder类中使用
public static
创建这些方法,以便在不同的类中使用它们。您是否将它们作为静态的?还有其他解决方案吗?其他解决方案是将这些类放在接口中,或者只是在每个类中声明这些方法。我认为另一种解决方案是将这两种方法中使用的所有对象创建为静态对象。然后将该方法更改为静态,以便可以使用它。请提供您尝试过的代码,以便可以建议更多解决方案。将活动上下文传递给非活动类,并将其用于
getContentResolver()