我正在处理一个代表同步操作的对话框。所以我有一个可变数量的记录,当我在我的应用程序上选择“同步”按钮时,它会显示如下内容:
“同步:记录y的y”
其中x是当前记录,y是总数。随着记录成功同步,对话框将刷新以表示此内容。
查看Android API,看起来创建一个AlertDialog是可行的方法,但我不确定如何编写代码,以便AlertDialog实例在执行同步操作时动态更新。
答案 0 :(得分:1)
您可以使用ProgressDialog。启动AsyncTask,在onPreExecute()回调中创建ProgressDialog,在onPublishProgress()回调中更新它(为了线程安全原因,必须从doInBackground()方法调用publishProgress()),然后在onPostExecute()上将其关闭回调。
AsyncTask文档与您需要做的事情非常接近:http://developer.android.com/reference/android/os/AsyncTask.html
答案 1 :(得分:0)
这是我在AlertDialog
:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
builder.setMessage("Message");
builder.setPositiveButton("OK", null);
AlertDialog dialog = builder.show();
// Must call show() prior to fetching text view
TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);
我打赌如果你把最后一行改为
messageView.setText("Whatever you need");
它可以工作
答案 2 :(得分:0)
为新对话框创建一个新活动,添加Android清单。
创建一个新对话框,如果为null,则取消该对话框。 并捕获新的Intents onNewIntent以更新对话框的内容。 如果您有任何疑问,请告诉我。
public class NewDialog extends Activity {
private AlertDialog alertDialog;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Remove title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
}
@Override
protected void onStart() {
super.onStart();
showNextDialog();
}
// Cancel the dialog if it is not null (i.e. contains message from previous dialog)
protected Dialog showNextDialog() {
if (alertDialog != null) {
alertDialog.cancel();
alertDialog = null;
}
// Build dialog with updated info
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(dialogTitle);
builder.setMessage(dialogMessage);
alertDialog = builder.create();
alertDialog.show();
return alertDialog;
}
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
showNextDialog();
}
}