如何从另一个类调用一个类的方法 - android

时间:2016-02-23 06:59:02

标签: java android

我已经对此进行了搜索,但无法找到答案,因为我不知道哪方面我做错了。每当我对这个方法进行分类时,我都会从我调用的地方得到错误。

我在checkpass.java类中使用此方法调用

 private void checking() {
    okbtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            TestClass testClass = new TestClass();
            testClass.testing();

        }
    });
}

我正在调用此方法,该方法位于另一个类

public void testing(){
    Toast.makeText(TestClass.this, "Testing class", Toast.LENGTH_SHORT).show();
}

我收到此错误:

at android.widget.Toast.makeText(Toast.java:287)
at com.futureappspk.WeTextFree.TestClass.testing(TestClass.java:18)
at com.futureappspk.WeTextFree.CheckPass$1.onClick(CheckPass.java:43)
at android.view.View.performClick(View.java:4746)

2 个答案:

答案 0 :(得分:6)

testClass 不是Activity,因此您在TestClass.this失败了。

最好将上下文传递给testing(Context mContext){并使用它

public void testing(Context mContext){
Toast.makeText(mContext, "Testing class", Toast.LENGTH_SHORT).show();
}

从任何地方打电话

testClass.testing(yourActivity.this);

答案 1 :(得分:0)

由于您需要Context才能Toast,因此您可能希望将Context传递给此其他类,无论是在调用测试时,还是在初始化时Testing()对象。 您的上下文,如果在活动中,可以通过致电getApplicationContext()获取。只需通过[ACTIVITY_NAME].this也可以。

**传递给函数** [我发现这更可取]

otherActivityObject.testing(thisActivity.this);

**在初始**

OtherActivity otherActivityObject = new OtherActivity(thisActivity.this); otherActivityObject.testing();