【问题标题】:Is it possible to Call a android class from java class?是否可以从 java 类调用 android 类?
【发布时间】:2012-01-12 18:37:52
【问题描述】:

我有一个扩展 Activity 的 android 类。

 public class MainAct extends Activity{
        Context context;
        SourceJava srcClass;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            context = this; 
            System.out.println("inside oncreate");
            setContentView(R.layout.main);
            srcClass = new SourceJava();
        }
    }

我有另一个 Java 类,如下所示,它是从 MainAct 类调用的。

public class SourceJava {       
    public SourceJava(){
        System.out.println("inside constructor***");
        MyClass myClass = new MyClass();            
    if(myClass != null){
    System.out.println("**not null");
    myClass.powerOff();

      }

   }       
 }

在 SourceJava 中,我正在调用另一个类。即

 public class MyClass extends Activity{ 

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            System.out.println("**inside myclass");
            powerOff();
        }

        public void powerOff(){
            System.out.println("**inside powerOff");
            Intent call = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:5555")); 
            startActivity(call);
        }

    }
  }

我在startActivity(call) 线上收到 NullPointerException, myClass.powerOff();srcClass = new SourceJava(); 这段代码有什么问题?

【问题讨论】:

  • 问题可能出在意图...可能无法正确创建意图。请尝试调试并显示日志以获取详细信息。

标签: java android nullpointerexception


【解决方案1】:

您将MyClass(它是一个 Activity 类)视为常规 Java 类。 MyClass 活动既未注册也未加载,因此调用 startActivity 在这里毫无意义。为此,您需要通过构造函数将 Context 的引用传递给 SourceClassMyClass

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2023-03-14
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多