Я хочу показать toast
сообщение, но getContext()
в Toast.makeText((getContext()," Message" , Toat.LENGTH_LONG.show()))
дает ошибкуgetContext(), getApplicationContext(), getBaseContext не работает в Android
не удается разрешить метод.
Проблема заключается в том, что в каком класс я хочу показать Toast
сообщений не MainActivity
класса. Это класс AsyncTask
. Могу ли я показать сообщение Toast
в других классах (кроме MainActivity
класса), как вышеупомянутая проблема?
импорт android.os.AsyncTask; import android.widget.Toast;
public class myClass extends AsyncTask<String, String, String> {
public myClass(double a, double b,Context context) {
this.a = a;
this.b=b;
this.context = context;
}
protected String doInBackground(String... params) {
return null;
}
protected void onPostExecute(String result) {
Toast.makeText((getApplicationContext(), "Message", Toast.LENGTH_LONG).show();
}
}
Редактировать Я сделал конструктор (смотри выше кода), но в MainActivity
классе я звоню таким образом myClassObj = new myClass(a, b,this);
но дает ошибку
myClas() в MyClass не может быть применен to: Ожидаемые значения Параметры Аргументы a: double a b: double b context: android.content.Context this (anonymous ... view.View.OnClickListener)
Edit3
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends AppCompatActivity {
myClass Object;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
double age = 16;
double number = 33;
Object = new myClass(age,number,this);
}
});
}
}
SecondClass.
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
public class myClass extends AsyncTask<String, String, String> {
Context context;
double a;
double b;
public myClass(double a, double b,Context context) {
this.a = a;
this.b=b;
this.context = context;
}
protected String doInBackground(String... params) {
return null;
}
protected void onPostExecute(String result) {
Toast.makeText((context), "Message", Toast.LENGTH_LONG).show();
}
}
пожалуйста, покажите 'AsyncTask' код –
если вы пытаетесь показать тост в doInBackground() метод, то вы can't.Move свой тост либо предварительно или postExecute() –
@VivekMishra Да, я показываю его в 'onPostExecute()'. Но такая же ошибка. – user6750923