답변:
예. 유일한 방법은 트랜잭션 시간에있다 그래서, 예 사용 add
, replace
또는 레이아웃의 일부로 사용할 수 있습니다.
과거의 어느 시점에서 비슷한 것을 간단히 살펴 보았을 때 호환성 소스를 조사하여 이것을 결정했습니다.
이런 식으로 태그를 조각화하도록 설정할 수 있습니다.
Fragment fragmentA = new FragmentA();
getFragmentManager().beginTransaction()
.replace(R.id.MainFrameLayout,fragmentA,"YOUR_TARGET_FRAGMENT_TAG")
.addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit();
활동 레이아웃 xml 파일 내에 태그를 제공 할 수 있습니다.
을 공급 android:tag attribute
고유 한 문자열로.
레이아웃 xml에 id를 할당하는 것처럼.
android:tag="unique_tag"
이것이 내가 찾은 가장 좋은 방법입니다.
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
// Let's first dynamically add a fragment into a frame container
getSupportFragmentManager().beginTransaction().
replace(R.id.flContainer, new DemoFragment(), "SOMETAG").
commit();
// Now later we can lookup the fragment by tag
DemoFragment fragmentDemo = (DemoFragment)
getSupportFragmentManager().findFragmentByTag("SOMETAG");
}
}
}
나는 그것이 6 년 전인 것을 알고 있지만 누군가 같은 문제에 직면하면 내가 한 것처럼하십시오.
Fragment
태그 필드를 사용 하여 사용자 정의 클래스를 작성하십시오 .
public class MyFragment extends Fragment {
private String _myTag;
public void setMyTag(String value)
{
if("".equals(value))
return;
_myTag = value;
}
//other code goes here
}
조각을 sectionPagerAdapter
세트에 추가하기 전에 다음과 같이 태그를 설정하십시오.
MyFragment mfrag= new MyFragment();
mfrag.setMyTag("TAG_GOES_HERE");
sectionPagerAdapter.AddFragment(mfrag);
태그를 Fragment
인수 의 속성으로 추가 할 수 있습니다 . 조각이 파괴 된 후 OS에 의해 재생성되면 자동으로 복원됩니다 .
예 :-
final Bundle args = new Bundle();
args.putString("TAG", "my tag");
fragment.setArguments(args);