Я пытаюсь добавить AlertDialog в класс (а не в активность), который обрабатывает асинхронный вызов на серверной части и обновляет графический интерфейс действия, переданного ему onPostExecute ().Действие, переданное этому классу, реализует потомок Theme.AppCompat, но сам класс этого не делает (поскольку это не действие), но я получаю следующую ошибку:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
Класс с асинхронной задачей выглядитнапример:
public class QueryUserTask extends AsyncTask<Void, Void, Seller>{
private Context mainContext;
private View mainView;
int barcode;
public QueryUserTask(Context context, View rootView, int sellerID) {
this.mainContext = context;
this.mainView = rootView;
this.barcode = sellerID;
}
protected Seller doInBackground(Void... unused) {
Seller seller = null;
try {
ApiRequester API = new ApiRequester();
seller = API.getSellerFromApi(barcode);
} catch (NoSuchAlgorithmException e) {
Log.d("Seller API Error", e.getMessage(), e);
Toast APIError = Toast.makeText(mainContext,R.string.NoSuchAlgorithmException, Toast.LENGTH_LONG);
APIError.show();
}
return seller;
}
protected void onPostExecute(Seller seller) {
// Do something with the result.
TextView sellerNameTextView = (TextView) mainView.findViewById(R.id.sellername);
TextView sellerIDTextView = (TextView) mainView.findViewById(R.id.sellerid);
TextView newspaperCountTextView = (TextView) mainView.findViewById(R.id.newsCount);
TextView calenderCountTextView = (TextView) mainView.findViewById(R.id.calCount);
sellerNameTextView.setText(String.valueOf(seller.getName()));
// sellerIDTextView.setText(String.valueOf());
newspaperCountTextView.setText(String.valueOf(seller.getNewspapers()));
calenderCountTextView.setText(String.valueOf(seller.getCalendars()));
ImageView sellerImage = (ImageView)mainView.findViewById(R.id.imageView2);
sellerImage.setImageBitmap(seller.getImage());
String text = seller.getText();
Log.d("text", text);
if(!text.equals("")){
AlertDialog.Builder builder = new AlertDialog.Builder(mainContext);
builder.setMessage("test")
.setTitle("test");
AlertDialog dialog = builder.create();
dialog.show();
Контекст и root-права, передаваемые классу, получены из моей HomeActivity.Домашняя деятельность выглядит так в файле манифеста:
<activity
android:name=".HomeActivity"
android:parentActivityName=".BarcodeCaptureActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
<activity
Заранее большое спасибо