谷歌建议我们使用DialogFragment而不是简单Dialog的使用Fragments API,但使用隔离DialogFragment的简单的是 - 否确认消息框是荒谬的.在这种情况下,最佳做法是什么?
android android-fragments android-dialog android-dialogfragment
我需要向点击我的Android应用程序上的按钮的用户显示一条短信,在IOS上我只需要创建一个简单易用的AlertView,但是我正在努力,因为解决方案似乎难以实现x10倍.我看到我需要使用DialogFragment,但我无法理解如何使其工作,有人可以解释一下吗?此外,我的解决方案是正确的还是更容易向用户显示简单的短信?
如何实现显示简单是/否确认对话框的首选项?
有关示例,请参阅Browser->Setting->Clear Cache.
在开发Android应用程序时,我已经读过,建议使用DialogFragment而不是直接使用AlertDialog来显示警报和确认.
例如,在DialogFragment的文档中完成此操作:http://developer.android.com/reference/android/app/DialogFragment.html
人们还说他们更喜欢这个: Android DialogFragment vs Dialog
我想知道这种方法的优点,因为代码变得更加复杂.
谢谢
android android-alertdialog android-dialogfragment dialogfragment
要创建一个简单的工作PopupWindow,我们需要执行以下操作:
popup_example.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="Test Pop-Up" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Java代码
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
PopupWindow pw = new PopupWindow(inflater.inflate(R.layout.popup_example, null, false),100,100, true);
pw.showAtLocation(this.findViewById(R.id.main), Gravity.CENTER, 0, 0);
Run Code Online (Sandbox Code Playgroud)
我的要求是我需要一个
<TEXTVIEW android:layout_height="wrap_content" android:layout_width="fill_parent" />
Run Code Online (Sandbox Code Playgroud)
和a
<BUTTON android:id="@+id/end_data_send_button" android:text="Cancel"/>
Run Code Online (Sandbox Code Playgroud)
在我的popup_example.xml.如何在Java代码中处理这两个组件?

如何AlertDialog在Android中更改按钮的颜色?
我想知道如何从DialogPreference中的Image Picker流程接收结果.
我希望能够在DialogPreference之后调用onActivityResult它,这样它就可以使用Uri所选图像的位置在点击确定/取消之前在对话框中向用户显示图像预览.
也许我需要在最后设置一些东西,onActivityResult然后调用生命周期钩子DialogPreference,但我不确定.
到目前为止逻辑是这样的:
ImagePreference.java
public class ImagePreference extends DialogPreference {
View mView;
public ImagePreference(Context context, AttributeSet attrs) {
super(context, attrs);
initWith(context, attrs);
}
private void initWith(Context context, AttributeSet attrs) {
setWidgetLayoutResource(R.layout.pref_image_widget);
setDialogLayoutResource(R.layout.pref_image_dialog);
}
@Override
protected View onCreateDialogView() {
mView = super.onCreateDialogView();
ImageButton button = (ImageButton) mView.findViewById(R.id.add_image);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
((SettingsContract.SelectImage)getContext()).fromGallery();
}
});
return mView;
}
Run Code Online (Sandbox Code Playgroud)
SettingsActivity.java
public class …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现android 应用内更新。我正在按照官方门户中提供的教程进行操作,但调用 startUpdateflow 方法时未显示该对话框。请在下面找到我正在执行的代码块。
final AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(this);
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
appUpdateInfoTask.addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
@Override
public void onSuccess(AppUpdateInfo appUpdateInfo) {
try {
Toast.makeText(getApplicationContext(),"Success.", Toast.LENGTH_SHORT).show();
appUpdateManager.startUpdateFlowForResult(
appUpdateInfo,
AppUpdateType.FLEXIBLE,
SplashScreenActivity.this,
APP_UPDATE_REQUEST_CODE
);
} catch (IntentSender.SendIntentException e) {
Toast.makeText(getApplicationContext(),"Exception received", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud)
我能够看到成功祝酒词和线条
appUpdateManager.startUpdateFlowForResult() is called
Run Code Online (Sandbox Code Playgroud)
但这没有显示带有“不,谢谢”和“更新”按钮的更新对话框,如门户中所示。我也尝试使用FakeAppUpdateManager但这也没有帮助。
在此请求帮助!
我正在使用以下代码创建自己的对话框:
public void ShowMessageDialog(String str){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(str);
builder.setCancelable(false);
builder.setNeutralButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但在此函数中使用时,它似乎会自动消失:
public void test(String str){
ShowMessageDialog("About to start new activity");
Intent intent = new Intent(this,PageViewer.class);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
似乎新活动已经创建并且显然摆脱了对话框.但为什么?在打开新活动之前,活动是否应该停止?
谢谢!