- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想在 Fragment 中实现一个警告对话框。
我创建了一个名为 MyDialog
的新类,其中包含:
public class MyDialog {
public static AlertDialog.Builder create(final Context context, final LayoutInflater layoutInflater, final String title, final String content) {
View view = layoutInflater.inflate(R.layout.userdialog, null);
((TextView)view.findViewById(R.id.textViewTitleDialog)).setText(title);
((TextView)view.findViewById(R.id.textViewContentDialog)).setText(content);
return new AlertDialog.Builder(context).setView(view);
}
}
然后在我想使用它的时候,我这样称呼这个类:
AlertDialog.Builder myDialog = MyDialog.create(this, getLayoutInflater(), R.string.cambioemail, R.string.nuevoemail);
myDialog.setPositiveButton(R.string.canviaruserdialog, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton(R.string.cancelaruserdialog, null)
.show();
fragment 的完整代码:
public class ConfiguracionFragment extends Fragment implements View.OnClickListener {
public ConfiguracionFragment() {
}
TextView tvEmail,tvPswd;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_pages, container, false);
tvEmail = (TextView) rootView.findViewById(R.id.tvEmailChange);
tvPswd = (TextView) rootView.findViewById(R.id.tvPswdChange);
tvEmail.setOnClickListener(this);
tvPswd.setOnClickListener(this);
return rootView;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tvEmailChange:
AlertDialog.Builder myDialog = MyDialog.create(this, getLayoutInflater(), R.string.cambioemail, R.string.nuevoemail);
myDialog.setPositiveButton(R.string.canviaruserdialog, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton(R.string.cancelaruserdialog, null)
.show();
break;
case R.id.tvPswdChange:
Intent intent2 = new Intent();
intent2.setClass(getActivity(), UserDialog.class);
intent2.putExtra("PSWD", "PSWD");
startActivity(intent2);
break;
}
}
}
我试图获取 LayoutInflater
的是 getActivity().getLayoutInflater()
,但它不起作用。
也许我明白了,也许逻辑不对,但我不明白为什么我做错了。
这是错误:
编辑
Error:(40, 69) error: method getLayoutInflater in class Fragment cannot be applied to given types;
required: Bundle
found: no arguments
reason: actual and formal argument lists differ in length
最佳答案
public class ConfiguracionFragment extends Fragment implements View.OnClickListener {
Bundle savedInstanceState;
Context context;
public ConfiguracionFragment(Context context) {
this.context = context;
}
TextView tvEmail,tvPswd;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
this.savedInstanceState =savedInstanceState;
View rootView = inflater.inflate(R.layout.fragment_pages, container, false);
tvEmail = (TextView) rootView.findViewById(R.id.tvEmailChange);
tvPswd = (TextView) rootView.findViewById(R.id.tvPswdChange);
tvEmail.setOnClickListener(this);
tvPswd.setOnClickListener(this);
return rootView;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tvEmailChange:
AlertDialog.Builder myDialog = MyDialog.create(context, getLayoutInflater(savedInstanceState), R.string.cambioemail, R.string.nuevoemail);
myDialog.setPositiveButton(R.string.canviaruserdialog, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton(R.string.cancelaruserdialog, null)
.show();
break;
case R.id.tvPswdChange:
Intent intent2 = new Intent();
intent2.setClass(getActivity(), UserDialog.class);
intent2.putExtra("PSWD", "PSWD");
startActivity(intent2);
break;
}
}
关于android - fragment 中的 getLayoutInflater(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29036457/
这个问题在这里已经有了答案: getLayoutInflater() in fragment (5 个答案) 关闭 4 年前。 我正在尝试编写一个应用程序,从在线 MySQL 数据库下载某些事件的数
我想创建一个带有 2 个 TextView 的简单 ListView。原始类:https://github.com/thest1/LazyList/blob/master/src/com/fedorv
此代码属于我的自定义微调器的数组适配器。我在 getLayoutInflater() 方法上收到无法解析方法的错误,我不知道为什么。任何帮助将不胜感激。 public View getCust
需要导入什么或者如何在activity以外的地方调用Layout inflater? public static void method(Context context){ //this do
在 socialNetworksActivity 类中,我有一个方法: public void getResultFromFBPost(String result) { if (result.eq
研究一些(已知是好的)代码我可以看到逻辑如下: if (getContext() instanceof Activity) { inflater=((Activity)getContext
我想在 Fragment 中实现一个警告对话框。 我创建了一个名为 MyDialog 的新类,其中包含: public class MyDialog { public static A
我试图在 Fragment 上的 ListView 中显示我的搜索结果,但它失败了: LayoutInflater inflater = getLayoutInflater(); The method
我可以知道的意思吗 public View getView(int position, View view, ViewGroup parent){ if (view ==nu
我想显示 content_list_drink_details.xml 中的 TextView(配料名称和配料价格)到 cart_layout.xml 的适配器。 但看起来我的 getLayoutIn
当我用下面的代码编译程序时,发生了一个错误。它说 getLayoutInflater ( ) 未定义。我该如何解决? final LayoutInflater inflater = getLayou
我坚持创建自定义适配器。我想在 ListView 内的按钮上设置 setOnClickListener,我发现这个主题看起来不错 how-to-setonclicklistener-on-the-bu
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState
现在,为了填充我的 GridView,我在我的每个 Android Activity (其中大部分)上使用了扩展的 BaseAdapter 类。 为了更易于阅读和维护,我尝试将所有 BaseAdapt
我想在我的 webView 中添加全屏模式 - 用于 YouTube 视频 -。我发现了这个例子 https://stackoverflow.com/a/16179544/5070495 。我已遵循所
tics 有 3 个项目。以下代码创建了 3 个票证项目,但始终设置第一个票证的 TextView 的文本。 public void onSuccess(int i, Header[] headers
我正在尝试使用自定义日期选择器 date picker 但是我在 fragment 中膨胀根布局时遇到了这个错误: public void button_click(View view) {
什么是真正的区别: return context.getLayoutInflater().inflate(R.layout.my_layout, null); Inflate a new view h
简单的“不”回答会让我平静下来。如果有什么不同,那是什么? 最佳答案 没有 只要调用 getLayoutInflater() 的 Activity 或 Window 与调用 getSystemServ
我得到这个异常Attempt to invoke virtual method 'android.view.LayoutInflater android.app.Activity.getLayoutI
我是一名优秀的程序员,十分优秀!