我已经对此进行了搜索,但无法找到答案,因为我不知道哪方面我做错了。每当我对这个方法进行分类时,我都会从我调用的地方得到错误。
我在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)
答案 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();