私はフロー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>
あるすべてのヘルプは、私は解決策を見つけた
私の問題を解決し、私はあまりにも – human
を保存して、ClassActivityEdit' 'から戻るボタンを押していけない場合、この問題が発生したことを確認していない、あなたのonActivityResultコード下さい –
@MustanserIqbalそれを表示上記の質問にある – human