0

私はフローLoadingPage - >ClassActivity - >ClassActivityEditの3つのアクティビティを持っています。私はそれがClassActivityEditに移動ボタンをクリックして実行すると、アプリケーションがClassActivityビューを開いたらLoadingPageのコードは保存アプリケーションで前のアクティビティに戻ることなく終了します

public class LoadingPage extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.loading_page); 
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      Intent mainIntent = new Intent(LoadingPage.this, ClassActivity.class); 
      mainIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      LoadingPage.this.finish(); 
      startActivity(mainIntent); 
      //finish(); 

     } 
    }, 2000); 
} 

}

です。次のアクティビティを開始するためのクラス活動のコードは、私が

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == 1) { 

     if(resultCode == RESULT_OK){ 
      finish(); 
startActivity(getIntent()); 
     } 
    } 
} 
を使用して

View.OnClickListener saveClassActivity = new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if(className.getSelectedItem().toString()!="" && courseID.getSelectedItem().toString()!="" && 
       activityType.getSelectedItem().toString().compareToIgnoreCase("select") != 0 && activityName.getText().length() != 0 && 
       dueDate.getText().length() != 0){ 
      System.out.println(activityType.getSelectedItem().toString()); 
      AsyncTask<Object, Object, Object> saveContactTask = 
        new AsyncTask<Object, Object, Object>() { 
         @Override 
         protected Object doInBackground(Object... params) { 
          saveClassActivities(); // save classes to the database 
          return null; 
         } // end method doInBackground 

         @Override 
         protected void onPostExecute(Object result) { 
          Toast.makeText(ClassActivityEdit.this, activityName.getText().toString() + " saved", 
            Toast.LENGTH_SHORT).show(); 
          Intent returnIntent = new Intent(); 
          returnIntent.putExtra("result","fine"); 
          setResult(RESULT_OK,returnIntent); 
          finish(); 
          //NavUtils.navigateUpFromSameTask(ClassActivityEdit.this); 
         } // end method onPostExecute 
        }; // end AsyncTask 

      // save the contact to the database using a separate thread 
      saveContactTask.execute((Object[]) null); 

     } 
     else{ 
      AlertDialog.Builder builder = 
        new AlertDialog.Builder(ClassActivityEdit.this); 
      builder.setTitle(R.string.errorTitle); 
      builder.setMessage(R.string.errorMessage); 
      builder.setPositiveButton(R.string.errorButton, null); 
      builder.show(); // display the Dialog 
     } 
    } 
}; 

は、私がClassActivityでreturnIntentをキャッチし、次のコードを使用してClassActivityに戻す活動の保存にClassActivityEdit

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if(item.getItemId() == R.id.action_settings) { 
    Intent addNewClass = 
      new Intent(ClassActivity.this, ClassActivityEdit.class); 
    startActivityForResult(addNewClass,1); // start the Activity 

    } 
    return super.onOptionsItemSelected(item); // call super's method 
} 

です

データが保存され、コントロールがRESULT_OK状態に戻ります。しかし、アプリは、ClassActivityにとどまるのではなく、並べ替えエラーなしで終了します。上記の活動のための私のマニフェストは

<activity 
     android:name=".LoadingPage" 
     android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".ClassActivity" 
     android:label="Class Activity"> 
     <intent-filter> 
      <action android:name="com.teamtreehouse.oslist.ClassActivity" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".ClassActivityEdit" 
     android:label="Class Activity Edit"> 
     <intent-filter> 
      <action android:name="com.teamtreehouse.oslist.ClassActivityEdit" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

あるすべてのヘルプは、私は解決策を見つけた

+0

私の問題を解決し、私はあまりにも – human

+0

を保存して、ClassActivityEdit' 'から戻るボタンを押していけない場合、この問題が発生したことを確認していない、あなたのonActivityResultコード下さい –

+0

@MustanserIqbalそれを表示上記の質問にある – human

答えて

0

を高く評価しています。私はこの問題を引き起こしていた活動を広げていました。私はなぜが、その活動への参照を削除し、私の現在の活動でこれらのメソッドを実装するには

関連する問題