0
我有一個Activity
,它調用startActivityForResult()
,以便用戶可以從庫中選取圖像。我在相同的Activity
中得到結果,並在ImageView
中顯示。我也有一個微調動態填充onCreate()
。它只有在用戶第一次選擇圖像時纔會很好,如果他再次嘗試,我的應用會崩潰,因爲它會再次加載微調器(換句話說,它會調用onCreate()
,但如果這是第一次,則不會)! )。如果多次調用startActivityForResult()會崩潰
相關的代碼部分:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
spinner = (Spinner) findViewById(R.id.spinner);
loadSpinnerData(); // populate spinner from DB
loadImageFromGalleryListener(); // click listener
}
private void loadImageFromGalleryListener() { // Called when user clicks on a button
loadFile.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(Intent.createChooser(intent, "Select picture"), LOAD_FILE_REQUEST);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode != RESULT_CANCELED){
if (requestCode == LOAD_FILE_REQUEST && resultCode == RESULT_OK) {
// ... LOGIC TO WRITE FILE ON IMAGEVIEW
}
}
}
所以..我怎樣才能避免在用戶試圖選擇一個圖像,第二次打電話onCreate()
?