繁体   English   中英

是否可以从java类调用android类?

[英]Is it possible to Call a android class from java class?

我有一个扩展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)myClass.powerOff();上得到NullPointerException myClass.powerOff(); srcClass = new SourceJava(); 这段代码有什么问题?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM