Проблема в том, что при использовании «нормальной» разметки макета контекст, используемый для раздувания, - это «this», которое является вложенным действием. К сожалению, Activity, вложенная во вкладку (ActivityGroup), не может быть использована для отображения диалогов (я не совсем уверен, почему это так, но это вызывает исключение BadTokenException). Решение, которое я нашел наиболее приемлемым, состоит в том, чтобы не использовать setContentView (int id), а сделать явную инфляцию, используя getParent () в качестве контекста. Как это:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View contentView = LayoutInflater.from(getParent()).inflate(R.layout.my_layout, null);
setContentView(contentView);
}