2013-03-08 25 views
0

我有一個名爲ConvertActivity的活動,它具有一個調用SetPrecisionActivity對話框的按鈕。在顯示對話框並且用戶按下關閉按鈕後,ConvertActivity的onResume()或onRestart()未被調用。我需要在返回到ConvertActivity後進行一些處理。在Android中關閉對話框後無法觸發任何事件

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();   
} 
} 
+0

你的'SetPrecisionActivity'類只是一個幫手,而不是一個Activity。 – daVe 2014-09-11 10:32:45

回答

2

你ConvertA當您打開另一個活動時,活動不會暫停或銷燬,它只是「坐在」那裏。查看startActivityForResult方法並等待結果,例如參見here

+0

我同意ConvertActivity就在那裏,但我會認爲它會被暫停,或者當對話框處於活動狀態時,以及當我們關閉對話框時,它應該恢復或重新啓動。 – user1848880 2013-03-08 14:35:52

+0

有人可能會這樣想。它絕對沒有被破壞,可能會暫停,但你不能保證。仔細查看活動生命週期文檔。無論如何,當你想等待另一個活動完成時,通常的做法就是我上面描述的方式。 – FWeigl 2013-03-08 14:42:16

+0

是的,我已經改變了我的代碼,因爲你已經提到要獲得必要的結果,它的工作..非常感謝。 – user1848880 2013-03-08 16:02:56

相關問題