我想发送包含我内容的阻止消息。我尝试了AlertDialog功能。问题是“再见”消息出现在“你好”之前。应该有一个比我更简单的解决方案。有什么想法吗?
package com.example.a00;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
//import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private static final int VISIBLE = 0;
private static final int INVISIBLE = 4;
private static final int GONE = 8;
private String logval = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnAlert = new Button(this);
//btnAlert = (Button) findViewById(R.id.btnAlert);
btnAlert.setOnClickListener(this);
btnAlert.setVisibility(GONE); // VISIBLE, INVISIBLE or GONE
//
logval = "hello";
btnAlert.performClick(); // should be displayed first
//
// continue processing
//
logval = "good bye"; // should be displayed last
btnAlert.performClick();
}
public void onClick(View v) {
AlertDialog alertDialog1 = new AlertDialog.Builder(
MainActivity.this).create();
alertDialog1.setTitle("Titre");
//alertDialog1.setMessage("message");
alertDialog1.setMessage(logval);
alertDialog1.setButton("OK", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(),
"Toast ...", Toast.LENGTH_SHORT).show();
}
});
alertDialog1.show();
}
}
答案 0 :(得分:0)
我认为会发生的事情是打开第一个hello
对话框,然后打开它good bye
。因此,最终用户会看到首先打开的“Good Bye dialog on the very top and then after it is closed, then the user sees the
hello”对话框。
方式1:
一个简单的选择是打开hello
的第一个对话框。然后在onClick
内打开另一个good bye
对话框。这样做只有当用户点击ok
或第一个对话框上的任何其他按钮时,才会打开good bye
的第二个对话框。因此,简而言之,尝试从另一个的onClick
打开一个对话框。请参阅Android display another dialog from a dialog和alert dialog after another alert dialog ? The first is missing! android
方式2:另一种方法是简单地反转它们的位置:
logval = "good bye";
btnAlert.performClick();
....
logval = "hello";
btnAlert.performClick();
因此Good bye
会首先打开,但会立即打开hello
{{1}}。
希望这有帮助。