Witho ет много контекста, единственным способом, которым я могу рекомендовать запуская Toast
сообщение из класса, отличных от Activity
является использование Listener
интерфейса:
public class Unknown {
public interface UnknownListener {
void displayMessage(CharSequence message);
}
private UnknownListener mUnknownListener;
private final String mToastMessage = "Unknown message";
public Unknown() {}
public void setUnknownListener(UnknownListener listener) {
mUnknownListener = listener;
}
private void doSomething() {
if(mUnknownListener != null) {
mUnknownListener.displayMessage(mToastMessage);
}
}
}
Затем реализует интерфейс в вашем Activity
, убедившись, чтобы удалить ссылку в соответствующий метод жизненного цикла:
public class MainActivity extends AppCompatActivity implements Unknown.UnknownListener {
private Unknown mUnknown;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mUnknown = new Unknown();
mUnknown.setUnknownListener(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
mUnknown.setUnknownListener(null);
}
@Override
public void displayMessage(CharSequence message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
Ваш вопрос очень расплывчатый, я рекомендую посмотреть, как создать [mcve]. – Bryan
Мне нужно вызвать Toast из класса (TextWatcher) - это не расплывчатое qestion – tadvas
Вы прочитали ссылку? Я думаю, вы должны прочитать [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask). Вы не предоставляете никакой информации о том, как вы пытались решить вашу проблему, а также не предоставляли какой-либо код для того, чтобы мы могли воспроизвести проблему. Это * неопределенный вопрос, и предоставление дополнительной информации поможет нам вам помочь. – Bryan