SORU
12 Temmuz 2011, Salı


Parça İçinde Parça

Parça içinde parça üzerinde çalışırken, aslında ben ile ilgili yardıma ihtiyacım var am düğmesine basarak tekrar bir sorunla karşı karşıya. Uygulama Ana ekran her düğme görünümü düğmeleri tuşuna basarak yeni yerine sahiptir parça(bu parça başka bir parça içerir), dinamik/değiştirme parçası, ince, basarak çalışıyor ekleme button1 parçası yerine, aynı düğmeye basarak gerçekleşir, ama eğer Ben düğmesine tekrar basın bir istisna var:

"Duplicate id 0x7f05000a, tag null, or parent id 0x7f050009 with
another fragment for com........ fragmentname"

parça veya iç parçaları zaten eklenir ve çalışıyorum demektir onları tekrar eklemek için, herkes parçası içinde birlikte çalışmak nasıl bir fikir var ve ileri geri herhangi bir problem için tesekkürler olmadan hareket eden parçası destek.

Dinamik parçaları nerede MainActivity, katma ve yerini aldı.

   public class FragmentInsideFragmentTestActivity extends Activity {

   private Button button1;
   private Button button2;
   private Button button3;
   private Button button4;


   /** Called when the activity is first created. */
  @Override
   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);

   button1 =(Button) this.findViewById(R.id.button1);
   button1.setOnClickListener(new View.OnClickListener() {
       public void onClick(View view) {
           onButtonClick(view);

           }
   });

   button2 =(Button) this.findViewById(R.id.button2);
   button2.setOnClickListener(new View.OnClickListener() {
       public void onClick(View view) {
           onButtonClick(view);

           }
   });

   button3 =(Button) this.findViewById(R.id.button3);
   button3.setOnClickListener(new View.OnClickListener() {
       public void onClick(View view) {
           onButtonClick(view);

           }
   });

   button4 =(Button) this.findViewById(R.id.button4);
   button4.setOnClickListener(new View.OnClickListener() {
       public void onClick(View view) {
           onButtonClick(view);

           }
   });

    }

   public void onButtonClick(View v) {
           Fragment fg;
           switch (v.getId()) {
           case R.id.button1:
                   fg=FirstFragment.newInstance();
                   replaceFragment(fg);
                   break;
           case R.id.button2:
                   fg=SecondFragment.newInstance();
                   replaceFragment(fg);
                   break;
           case R.id.button3:
                   fg=FirstFragment.newInstance();
                   replaceFragment(fg);
                   break;
           case R.id.button4:
                   fg=SecondFragment.newInstance();
                   replaceFragment(fg);
                   break;
           }
   }

   private void replaceFragment(Fragment newFragment) {

   FragmentTransaction trasection =
   getFragmentManager().beginTransaction();
   if(!newFragment.isAdded()){
           try{
                   //FragmentTransaction trasection =
           getFragmentManager().beginTransaction();
           trasection.replace(R.id.linearLayout2, newFragment);
           trasection.addToBackStack(null);
           trasection.commit();

           }catch (Exception e) {
                           // TODO: handle exception
                    //AppConstants.printLog(e.getMessage());

                   }
   }else
           trasection.show(newFragment);

      }
    }

Burada Düzeni: main.xml

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"

   <LinearLayout android:id="@ id/linearLayout1"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:orientation="horizontal">
           <Button android:layout_width="wrap_content"
                   android:id="@ id/button1"
                   android:layout_height="wrap_content"
                   android:text="Button1"></Button>
           <Button android:text="Button2"
                   android:id="@ id/button2"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"></Button>
           <Button android:text="Button3"
                   android:id="@ id/button3"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"></Button>
           <Button android:text="Button4"
                   android:id="@ id/button4"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"></Button>
   </LinearLayout>

  <LinearLayout android:id="@ id/linearLayout2"
   android:layout_width="match_parent"
    android:layout_height="wrap_content"
   android:orientation="horizontal"></LinearLayout>
     </LinearLayout>

Benim sorunum temizlemek için denedim umarım.

CEVAP
13 Temmuz 2011, ÇARŞAMBA


AFAIK, parçaları diğer parçaları tutun.


GÜNCELLEME

Android Destek paketinin güncel bir sürümü ile API Seviyesi 17 ve üstü veya yerli parçaları, iç içe parçaları, getChildFragmentManager() anlamına gelir. Bu demek oluyor ki ihtiyacın için kullan Android Destek Paketi sürümü parçaları üzerinde API Düzeyleri 11-16, çünkü olsa bile, orada bir yerel sürümü parçaları üzerinde bu cihazlar, bu sürüm yok getChildFragmentManager().

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC

    HTC

    12 Ocak 2006
  • Jason Parker

    Jason Parker

    14 Aralık 2009
  • Samvith V Rao

    Samvith V Ra

    20 EKİM 2006