ダイアログ ボックスが実行されている間、メイン アクティビティを待機させたい。this.wait();
メインアクティビティで試しましたが、例外が発生します。これはすべて頭に浮かんだので、助けを求めるためにここにいます:)。事前に感謝します
public class MyDailogTestActivity extends Activity {
/** Called when the activity is first created. */
String Xvalue,Yvalue;
TextView TextViewString;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button ShowDialog = (Button) findViewById(R.id.ShowDialog);
TextViewString = (TextView) findViewById(R.id.ShowDialogText);
ShowDialog.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
// TODO Auto-generated method stub
Dialog MyDialog = MyDailog();
MyDialog.show();
// I WANT THIS TO EXECUTE AFTER BELOW MENTIONED CODE
TextViewString.setText(Xvalue + Yvalue);
}
});
}
private Dialog MyDailog(){
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.my_dialog, null);
return new AlertDialog.Builder(MyDailogTestActivity.this)
.setTitle("Enter Value")
.setView(textEntryView)
.setPositiveButton("Oky", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// THIS TO BE EXECUTE FIRST
Xvalue = "This ";
Yvalue = "and That";
/* User clicked OK so do some stuff */
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked cancel so do some stuff */
}
})
.create();
}
}
これは、実行中のこのプロジェクトの画像です
http://imageshack.us/photo/my-images/220/11696639.jpg/ この画像では、Hello World が変更されていないことがわかります。hello world TextView の変更を反映しようとしています。
http://imageshack.us/photo/my-images/338/27833231.jpg/
今この画像で。[ダイアログを表示] を押すと、値 null を表示する次のコードの実行がTextViewString.setText(Xvalue + Yvalue);
続行されます。このコードによって Xvalue と Yvalue の値が "This n That" になるコードがダイアログ ボックスで終了するまで待機する必要があります。
Xvalue = "This ";
Yvalue = "and That";