Saya belum menemukan sesuatu seperti setTag(String tagName)
metode di Fragment
kelas. Satu-satunya cara untuk menyetel Fragment
tag yang saya temukan adalah dengan melakukan FragmentTransaction
dan meneruskan nama tag sebagai parameter.
Apakah ini satu-satunya cara untuk menyetel Fragment
tag dengan kode secara eksplisit ?
android
android-3.0-honeycomb
android-fragments
Axel M. Garcia
sumber
sumber
Anda dapat menyetel tag menjadi fragmen dengan cara ini:
Fragment fragmentA = new FragmentA(); getFragmentManager().beginTransaction() .replace(R.id.MainFrameLayout,fragmentA,"YOUR_TARGET_FRAGMENT_TAG") .addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit();
sumber
Anda dapat memberikan tag di dalam file xml tata letak aktivitas Anda.
Sediakan
android:tag attribute
string unik.Sama seperti Anda akan menetapkan id dalam layout xml.
android:tag="unique_tag"
tautan ke panduan pengembang
sumber
Anda juga bisa mendapatkan semua fragmen seperti ini:
Untuk fragmet v4
List<Fragment> allFragments = getSupportFragmentManager().getFragments();
Untuk app.fragment
List<Fragment> allFragments = getFragmentManager().getFragments();
sumber
Ini adalah cara terbaik yang saya temukan:
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"); } } }
sumber
Saya tahu ini sudah 6 tahun yang lalu tetapi jika ada yang menghadapi masalah yang sama lakukan seperti yang saya lakukan:
Buat
Fragment
Kelas khusus dengan bidang tag:public class MyFragment extends Fragment { private String _myTag; public void setMyTag(String value) { if("".equals(value)) return; _myTag = value; } //other code goes here }
Sebelum menambahkan fragmen ke
sectionPagerAdapter
set tag seperti itu:MyFragment mfrag= new MyFragment(); mfrag.setMyTag("TAG_GOES_HERE"); sectionPagerAdapter.AddFragment(mfrag);
sumber
Anda dapat menambahkan tag sebagai properti untuk
Fragment
argumen. Ini akan secara otomatis dipulihkan jika fragmen dihancurkan dan kemudian dibuat ulang oleh OS .Contoh : -
final Bundle args = new Bundle(); args.putString("TAG", "my tag"); fragment.setArguments(args);
sumber