2014-12-17 4 views
0

다음은 내가 간략하게 설명합니다. 가로 방향 (listview 및 detailview)과 세로 방향 (listview) 일 때 한 조각 만 표시하는 두 개의 조각이 있습니다. 내 애플 을 시작 지금 때 나는 savedInstanceState있을 때 NOsavedInstanceState 및 디스플레이 detailview이하는 경우는, 목록보기를 보여를 원한다. 당신은 안드로이드 기본 이메일 애플 리케이션 에서이 방향을 상관없이 이메일에 남아 회전이 작업을 볼 수 있습니다.두 조각이 나란히있는 문제

무슨 일이 벌어 지든 수직으로 회전하면 listview이 표시됩니다. 이것은 처음 게시하는 게시자이며 도움을받을 수 있기를 바랍니다. 새로운 소식입니다. 나는 같은

public class TicketActivityP extends Activity implements OnSelectedListener { 

boolean detailPage = false; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
    setContentView(R.layout.ticket_view); 

    if(savedInstanceState == null) { 
     FragmentTransaction ft = getFragmentManager().beginTransaction(); 
     ListFragmentP listFragment = new ListFragmentP(); 
     ft.add(R.id.displayList, listFragment, "List_Fragment"); 
     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
     ft.commit(); 
    } 

    if(findViewById(R.id.displayDetail) != null){ 
     detailPage = true; 
     getFragmentManager().popBackStack(); 
     DetailFragmentP detailFragment = (DetailFragmentP) getFragmentManager().findFragmentById(R.id.displayDetail); 

     if(detailFragment == null){ 
      FragmentTransaction ft = getFragmentManager().beginTransaction(); 
      ft.replace(R.id.displayDetail, detailFragment, "Detail_Fragment1"); 
      ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
      ft.commit(); 
     } 
    } 

    } 
} 
+0

가로 모드에있을 때 listview와 detailsview가 모두 표시되고 세로 모드로 변경하면 세부 정보가 손실됩니다. – Rain

+0

예, 목록 대신 세부 정보를 표시하고 싶습니다. –

+0

메시지 앱에서 효과를 볼 수도 있습니다. 방금 열어 본 경우 세부 정보보기에 표시된 메시지를 클릭하면 목록보기가 표시되지만 회전하면 목록 대신 메시지가 표시됩니다. 광산은 회전 후 기본적으로 목록을 보여줍니다. –

답변

0
boolean detailPage = false; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
    setContentView(R.layout.ticket_view); 

    if(savedInstanceState == null) { 
     FragmentTransaction ft = getFragmentManager().beginTransaction(); 
     ListFragmentP listFragment = new ListFragmentP(); 
     ft.add(R.id.displayList, listFragment, "List_Fragment"); 
     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
     ft.commit(); 
    } 


    if(findViewById(R.id.displayDetail) != null){ 
     Log.d("tap","displayDetail found"); 
     detailPage = true; 
     getFragmentManager().popBackStack(); 
     DetailFragmentP detailFragment = (DetailFragmentP) getFragmentManager().findFragmentById(R.id.displayDetail); 

     if(detailFragment == null){ 
      FragmentTransaction ft = getFragmentManager().beginTransaction(); 
      detailFragment = new DetailFragmentP(); 
      ft.replace(R.id.displayDetail, detailFragment, "Detail_Fragment1"); 
      ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
      ft.commit(); 
     } 
    }else{ 

     if(savedInstanceState != null) { 
      SQLiteDatabase db = openOrCreateDatabase("acsi2000.db",android.content.Context.MODE_PRIVATE ,null); 
      Cursor page_cursor = db.rawQuery("SELECT * FROM tickets WHERE Order_No='" + DetailFragmentP.Order_No + "'",null); 
      DetailFragmentP detailFragment = new DetailFragmentP(); 
      detailFragment.setSMSOContent(page_cursor); 
      FragmentTransaction ft = getFragmentManager().beginTransaction(); 
      ft.replace(R.id.displayList, detailFragment, "Detail_Fragment2"); 
      ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
      ft.addToBackStack(null); 
      ft.commit(); 


     } 

    } 
} 
@Override 
public void onSelected(String SMSO) { 
    SQLiteDatabase db = openOrCreateDatabase("acsi2000.db",android.content.Context.MODE_PRIVATE ,null); 
    Cursor page_cursor = db.rawQuery("SELECT * FROM tickets WHERE Order_No='" + SMSO + "'",null); 
    if(detailPage){ 
     DetailFragmentP detailFragment = (DetailFragmentP) getFragmentManager().findFragmentById(R.id.displayDetail); 
     detailFragment.updateSMSOContent(page_cursor); 
    }else{ 
     DetailFragmentP detailFragment = new DetailFragmentP(); 
     detailFragment.setSMSOContent(page_cursor); 
     FragmentTransaction ft = getFragmentManager().beginTransaction(); 
     ft.replace(R.id.displayList, detailFragment, "Detail_Fragment2"); 
     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
     ft.addToBackStack(null); 
     ft.commit(); 
    } 
} 

모습은 R.id.displayDetail 검사에 다른 문을 추가 한 후 저장 인스턴스를 확인하고 내 선택에 같은 코드의 같은 종류를 수행하는 데 필요한.

도움을 주셔서 감사 드리며 다른 도움이 되길 바랍니다.

관련 문제