【发布时间】:2016-02-29 22:27:18
【问题描述】:
我在我的应用中使用 AppCompat 库 (com.android.support:appcompat-v7:22.1.0)。我在片段中创建了一个 ActionBar。当我单击菜单项时,它会显示一个警报对话框。这是我的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.action_new:
showFilterDialog();
return true;
case R.id.action_send:
new sendInventoryTask().execute();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
还有我的 showInventoryDialog 方法:
private void showFilterInventoryDialog() {
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
LayoutInflater inflater= getActivity().getLayoutInflater();
View v = inflater.inflate(R.layout.dialog_filter_inventory,null);
alert.setView(v);
alert.setTitle(getResources().getString(R.string.filters));
alert.setPositiveButton(getResources().getString(R.string.filter), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// TODO
}
});
alert.setNegativeButton(getResources().getString(R.string.cancel), null);
alert.show();
}
一切正常,但是当我点击菜单项时,logcat 显示错误:
I/AppCompatDelegate:Activity 的 LayoutInflater 已经安装了 Factory,所以我们无法安装 AppCompat 的
如何解决?
【问题讨论】:
-
你的activity类扩展了什么类?
-
MainActivity 扩展 AppCompatActivity