我从HelperClass扩展了MainActivity,后者从AppCompatActivity扩展了。我必须这样做,因为我需要覆盖每个活动中不同的HelperClass中的方法。
例如:
public class MainActivity extends HelperClass {
@Override
public void methodOne() {
popupmethod("Title","Some Text",0);
}
public void popupmethod(final String titel, final String text, final int ToDo) {
runOnUiThread(new Runnable() {
@Override
public void run() {
new AlertDialog.Builder(getApplicationContext())
.setTitle(titel)
.setMessage(text)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
changer(ToDo);
}
})
.show();
}
});
}
public void changer(int xxx){
switch (xxx) {
case 0:
break;
case 1:
break;
case 2:
break;
}
}
}
和(仅是一个例子)
public abstract class HelperClass extends AppCompatActivity{
@Override
public void methodOne() { }
@Override
public void methodTwo() { }
}
现在,当我从服务器获取到HelperClass的答案时,它将调用methodOne()。 (一切正常,但弹出窗口有效)然后我得到“ java.lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)。”