java解决 No enclosing instance of type XXX is accessible的问题
2014-08-25 09:10
561 查看
有些时候我们要把Activity的一些实现类移到java类里来实现,比如把写以下两个类:
在LifeCircle这个类中:
如果在Activity这样去new:
编译器会报一个错误:
一种解决方法是把Mybroadcast定义为static class
令一种这样来弄:
在LifeCircle这个类中:
public class LifeCircle { public class Mybroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { } } }
如果在Activity这样去new:
public class Settings extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test_layout); LifeCircle lifeCircle = new LifeCircle(this); Mybroadcast cast = new Mybroadcast(); } }
编译器会报一个错误:
- No enclosing instance of type LifeCircle is accessible. Must qualify the allocation with an enclosing instance of type LifeCircle (e.g. x.new A() where x is an instance of LifeCircle).
一种解决方法是把Mybroadcast定义为static class
令一种这样来弄:
package com.example.shoplistdownload; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; public class LifeCircle { Context mContext; private static LifeCircle sInstance; private Mybroadcast mBroadcast; private Settings mInstance; LifeCircle(Context context) { mContext = context; mInstance = (Settings)context; } public static LifeCircle getIntance(Context context) { if (sInstance == null) { sInstance = new LifeCircle(context); } return sInstance; } public class Mybroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { } } public void registerBroadcaster() { mBroadcast = new Mybroadcast(); IntentFilter filter = new IntentFilter(); filter.addAction("com.example.action"); mInstance.registerReceiver(mBroadcast, filter); } }
public class Settings extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test_layout); LifeCircle lifeCircle = new LifeCircle(this); lifeCircle.registerBroadcaster(); } }
相关文章推荐
- JAVA编译错误 “No enclosing instance of type XXX is accessible”的解决方法
- Java中出现No enclosing instance of type XXX is accessible问题
- Java在编译运行时出现No enclosing instance of type XXX is accessible问题
- Java中出现No enclosing instance of type XXX is accessible问题
- Java中出现No enclosing instance of type XXX is accessible问题
- Java中出现No enclosing instance of type XXX is accessible问题
- Java解决No enclosing instance of type PrintListFromTailToHead is accessible问题的两种方案
- Java中出现No enclosing instance of type XXX is accessible问题
- Java出现No enclosing instance of type E is accessible问题解决
- Java解决No enclosing instance of type PrintListFromTailToHead is accessible问题
- No enclosing instance of type xxx is accessible 问题及解答,静态方法调用动态方法问题
- 问题No enclosing instance of type E is accessible的解决
- 解决android出现static void xxx No enclosing instance of type xxx is accessible
- 【JAVA001】No enclosing instance of type XXX is accessible.
- Java编译时出现No enclosing instance of type XXX is accessible.
- java中"no enclosing instance of type * is accessible"的解决方法
- 验证参数传递引发的Java编译错误“No enclosing instance of type XXX is accessible" 及匿名内部类
- 再学Java 之 解决No enclosing instance of type * is accessible
- <java>No enclosing instance of type GraphicFrame is accessible. Must qualify the allocation with an
- Java编译错误“No enclosing instance of type AA is accessible. Must qualify the allocation with an enclosing instance of type SimpleTh