我有一个外部类,我想在这个类中使用Toast。 我试图实现这个但是我收到了一个错误。
如何在没有任何错误的情况下轻松完成此操作?
public class ElevenActivity extends AppCompatActivity {
@
Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_eleven);
}
public class MyToast {
public MyToast(String message) {
Toast.makeText(ElevenActivity.this, message, Toast.LENGTH_SHORT).show();
}
}
}
public class externalClass extends SQLiteOpenHelper {
public void CreateDB() {
ElevenActivity.MyToast t = new ElevenActivity.MyToast("Here");
}
}
答案 0 :(得分:0)
使用getApplicationContext()在外部类中创建一个Toast。像,
public class externalClass extends SQLiteOpenHelper {
public void CreateDB() {
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
}
}
答案 1 :(得分:0)
如果您想提供一个对不同的上下文(例如活动)有效的方法,请将此上下文作为参数传递。
public static void textToast(String textToDisplay, Context context) { ... }
如果要从嵌套的内部类中调用此方法(通常就是这种情况),可以将其用作上下文
public void textToast(String textToDisplay) {
...
Toast toast = Toast.makeText(OuterClass.this, text, duration);
...
}
(或在外部类中实现textToast并通过嵌套内部类中的OuterClass.this.textToast调用它) ..........