2016-07-07 5 views
0

私は3 fragmentsを含む主な活動をしています。それぞれfragmentにはlistViewがあり、これをクリックすると新しいアクティビティに転送されます。他のアクティビティに移動しながらフラグメントを完成させますか?

新しいActivityで、私はクリックされたリストビューのコンテンツを変更して、インテントを使用してメインアクティビティに戻します。

これは新しいメインのアクティビティフラグメントを開き、戻るボタンを押すと以前に開いた前のメインアクティビティに戻ります。他の活動からこの

public class MainActivity extends AppCompatActivity { 
     public static MainActivity mainActivity; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_staff_login); 
      //finishing older loaded mainActivity 
      if(MainActivity.mainActivity!=null){ 
       MainActivity.mainActivity.finish(); 
      } 
      mainActivity=this; 

     } 
    } 

のような静的変数で

+0

コール 'getActivityを()onBackpressedながら。フィニッシュ()'、あなたの新しい活動の意図は、[Aから現在の活動を仕上げのフラグメント –

+0

可能な重複からスタートした後、フラグメント](http://stackoverflow.com/questions/7907900/finishing-current-activity-from-a-フラグメント) – Ironman

答えて

-1

保存活動のコンテキストあなたはこの

if(MainActivity.mainActivity!=null){ 
    MainActivity.mainActivity.finish(); 
    } 
0

代わりのstartActivityを使用して、フラグメントでstartActivityForResultを使用してにonActivityResultているようなあなたの古い活動を終了することができますあなたが始めた新しい活動からの結果を取得

あなたのフラグメントで、次のようになります

あなたの新しい活動に
static final int NEXT_ACTIVITY = 100; 

//insert in listview on click 
Intent intent = new Intent(context,Activity2.class); 
intent.putExtra("key","value");//if needed 
startActivityForResult(intent,NEXT_ACTIVITY); 

@Override //*Note* you must override this method in you parent Activity in order to reflect the data inside your fragment 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode,resultCode,data);//while using inside fragment 
switch(requestCode) { 
case NEXT_ACTIVITY: 
    if (resultCode == RESULT_OK) { 
     Bundle res = data.getExtras(); 
     String result = res.getString("param_result"); 
     Log.d("FIRST", "result:"+result); 
    } 
    break; 
} 
} 

仕上げ/は

Bundle data = new Bundle(); 
data.putString("param_result", "Thanks Thanks"); 
setResult(RESULT_OK, data); 
finish(); 
関連する問題