有一种方法可以获得layoutInflater:
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Run Code Online (Sandbox Code Playgroud)
另一种方式是:
LayoutInflater inflater = LayoutInflater.from(context);
Run Code Online (Sandbox Code Playgroud)
第三个(当我参加活动时)是:
LayoutInflater inflater = getLayoutInflater();
Run Code Online (Sandbox Code Playgroud)
那么他们之间有什么区别?
请注意,当我将第三个inflater发送到我的适配器时,我的应用程序工作.但是当我发送上下文并通过第二种方式创建了inflater时,它没有!
我正在用Fragments API支持重写我的应用程序.在原始应用程序中,我有一个AlertDialog这样的:
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.button_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(view);
ListView mListView = (ListView) view.findViewById(R.id.mblist);
builder.setTitle(getString(R.string.sysinfo)).setNeutralButton(
getString(R.string.okay), null);
Cursor dcursor = propManager.propCursor();
if (dcursor.moveToFirst()) {
startManagingCursor(dcursor);
String[] from = { Constants.NAME_DET,
Constants.VALUE_DET };
int[] to = { R.id.mbname, R.id.mbvalue };
SimpleCursorAdapter dadapter = new SimpleCursorAdapter(this,
R.layout.info_list_row, dcursor, from, to);
mListView.setAdapter(dadapter);
}
final Dialog dialog = builder.create();
dialog.show();
Run Code Online (Sandbox Code Playgroud)
如何通过DialogFragment显示相同的对话框?我已阅读文档,但无法弄清楚如何继续这样做.