2014-05-14 2 views
0

나는 안드로이드에 상당히 익숙하며 도움을 원했다. 내 응용 프로그램은 ViewPager에 두 개의 탭 (단편)이 있습니다. 탭 중 하나에 항목 목록이 표시됩니다. 항목을 클릭하면 앱에 항목의 세부 정보가 표시됩니다.ViewPager에 안드로이드 추가 조각

어떻게하면 되나요? 세부 정보를 세 번째 조각에 추가합니까? 그렇다면 조각을 어떻게 추가해야합니까? ViewPager에서 세부 정보 조각을 탭으로 사용하고 싶지 않습니다.

세부 프래그먼트를 별도의 조각으로 ViewPager에 추가하려고 시도했습니다. 항목을 클릭하면 조각이 호출됩니다 (내부의 로그 문은 콘솔에 표시됩니다). 그러나 빈 화면이 나타납니다. 나는 현재 활동의 세부 조각을 추가 해요 방법

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="600dp" 
    android:layout_height="700dp" 
    android:background="#FFFFFF" 
    android:orientation="vertical" > 
... 
</LinearLayout> 

이는 다음과 같습니다 :이 세부 조각에 대한 XML은

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

</android.support.v4.view.ViewPager> 

:

내 activity.xml입니다

DetailsFragment details = new DetailsFragment(); 
android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
      transaction.replace(R.id.pager, details); 
      transaction.addToBackStack(null); 
      transaction.commit(); 

미리 감사드립니다.

답변

0

세부 정보를 표시하려면 새 활동을 열어야합니다. 이 새로운 활동은 단순히 DetailsFragment의 컨테이너 일뿐입니다.

IntentActivity으로 표시 할 세부 정보를 전달해야합니다. 그러면 액티비티는 Bundle (Fragment.setArguments()) 인수를 사용하여 세부 정보를 Fragment로 전달합니다. 대부분의 경우, 이것은 Parcelable을 구현하는 간단한 객체가 될 것입니다.

+0

답장을 보내 주셔서 감사합니다. 나는 새로운 액티비티로 데이터를 전달한 다음 거기에서 프래그먼트를 시작하려고 시도했다. 하지만 이제 잘못된 인터페이스에 java.lang.securityexception 바인더 호출이 발생합니다. – drunkenfist

+0

기본적으로 내가하고있는 일은 ListFragment (즉, 탭)에 인터페이스가 있다는 것입니다. listitem을 클릭 할 때 parserable 객체를 부모 작업으로 전달하는 콜백 메소드가 있습니다. 상위 액티비티의 콜백 메소드에서, 객체를 가져 와서 Intent를 사용하여 새 액티비티 (내 DetailsFragment의 컨테이너 역할을 함)를 시작하고 intent.putExtra를 사용하여 데이터를 전달합니다. startActivity (detailsIntent) – drunkenfist

+0

할 때 오류가 발생합니다. 의도 한 개체를 추가 할 때만 문제가 발생합니다. 그 줄을 주석 처리하거나 String과 같은 다른 인수를 전달하면 응용 프로그램이 제대로 작동합니다. 또한 parceable 객체를 번들에 추가 한 다음 번들을 새 인 텐트에 전달하려고했습니다. 여전히 같은 오류가 발생합니다. 이 오류가 발생하는 이유는 무엇입니까? 그리고 다른 방법으로 객체를 보낼 수 있습니까? – drunkenfist