gpt4 book ai didi

android - fragment 中的 getLayoutInflater()

转载 作者:太空狗 更新时间:2023-10-29 16:35:49 27 4
gpt4 key购买 nike

我想在 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(),但它不起作用。

也许我明白了,也许逻辑不对,但我不明白为什么我做错了。

这是错误:

enter image description here

编辑

    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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com