0

SetPrecisionActivityダイアログを呼び出すボタンを持つConvertActivityというアクティビティがあります。ダイアログが表示され、ユーザーが閉じるボタンを押した後、ConvertActivityのonResume()またはonRestart()は呼び出されません。ConvertActivityに戻った後、いくつかの処理を行う必要があります。

ConvertActivity.java

public class ConvertActivity extends Activity {
private int callingActivity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.convert_layout);

 } 

public void onClick(View view) {
switch (view.getId()) {
case R.id.setprecision:
    // show the precision screen
    SetPrecisionActivity.app_launched(this);
    break;
}
  }
}

変換レイアウト

  <TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:shrinkColumns="*"  
android:stretchColumns="*"
android:padding="15dp"
android:background="#ffffff">
    <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_span="1"
    android:gravity="center_horizontal"
    android:drawableTop="@drawable/setprecision"
    android:onClick="onClick"
    android:background="@null"
    android:id="@+id/setprecision"
    android:textSize="12sp"
    android:textColor="#000000"
    android:text="@string/csetprecisionh" />
</TableRow>

setprecisionActivity.java(ダイアログボックスとして表示されます)

  public class SetPrecisionActivity {
  private static Spinner spinnerp;

  public static void app_launched(Activity mContext) {
    SharedPreferences prefs = mContext.getSharedPreferences("helloapp", 0);
    SharedPreferences.Editor editor = prefs.edit();
    showPrecisionDialog(mContext, editor);
    editor.commit();
}   

public static void showPrecisionDialog(final Activity mContext, final SharedPreferences.Editor editor) {
    final Dialog dialog = new Dialog(mContext);
    dialog.setTitle("Set precision ");

   // Inflate the popup_layout.xml
   LinearLayout viewGroup = (LinearLayout) mContext.findViewById(R.id.popupprecision);
   LayoutInflater layoutInflater = (LayoutInflater) mContext
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   final View layout = layoutInflater.inflate(R.layout.setprecision_layout, viewGroup);

   // Getting a reference to Close button, and close the popup when clicked.
   Button close = (Button) layout.findViewById(R.id.close);
   close.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    dialog.setContentView(layout);        
    dialog.show();        
}
 }
4

2 に答える 2

2

ConvertActivityは、別のアクティビティを開いたときに一時停止または破棄されることはなく、そこに「座っている」だけです。startActivityForResultメソッドを見て、結果を待ちます。たとえば、ここを参照してください。

于 2013-03-08T14:10:24.283 に答える
0

ダイアログが閉じられたときにイベントをトリガーするには、「終了時」のリスナーが必要です。すでにここで回答されています:Android Dialogが閉じられたときにイベントを発生させることはできますか?

于 2014-09-11T10:38:12.487 に答える