Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

可以从java类调用安卓类吗?

我有一个安卓类,它扩展了活动

 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中,我调用了另一个类。i、 e

 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);
        }

    }
  }

我在第^{行收到NullPointerException, myClass.powerOff();srcClass = new SourceJava(); 这个代码有什么问题


共 (1) 个答案

  1. # 1 楼答案

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