Autore Topic: Problema con Navigation Drawer e fragment  (Letto 843 volte)

Offline Verkia

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Windows 7
Problema con Navigation Drawer e fragment
« il: 04 Novembre 2013, 12:41:43 CET »
0
Ciao ragazzi!
Sto tentando di creare un'app con Navigation Drawer sull'esempio della pagina http://developer.android.com/design/patterns/navigation-drawer.html[/url]. Modificando il codice di Android Developers, cercando di inserire al posto di PlanetFragment.xml (contenente un'immagine) il mio fragment.xml (contenente un Button) funziona perfettamente.

fragment.xml:
Codice (XML): [Seleziona]
    <Button   xmlns:android="[url]http://schemas.android.com/apk/res/android"
   android:id="@+id/button"
   android:layout_width="30dp"
   android:layout_height="30dp"
   android:gravity="center"
   android:padding="32dp" />

se invece voglio inserire due button, contenuti in fragment.xml, l'app crasha.

fragment.xml con due button:
Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android">
    <Button     android:id="@+id/button"
   android:layout_width="30dp"
   android:layout_height="30dp"
   android:gravity="center"
   android:padding="32dp" />

    <Button     android:id="@+id/button2"
   android:layout_width="30dp"
   android:layout_height="30dp"
   android:gravity="center"
   android:padding="90dp" />
</RelativeLayout>

il codice che chiama la creazione di un fragment è il seguente:

Codice (Java): [Seleziona]
private void selectItem(int position) {  //chiamato al tap su di un elemento del Navigation Drawer
        Fragment fragment = new NewFragment();
        Bundle args = new Bundle();
        args.putInt(NewFragment.ARG_PLANET_NUMBER, position);
        fragment.setArguments(args);

        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();

        mDrawerList.setItemChecked(position, true);
        setTitle("title");
        mDrawerLayout.closeDrawer(mDrawerList);
    }

la classe che crea il layout che andrà inserito nel fragment:
Codice (Java): [Seleziona]
public static class NewFragment extends Fragment {
        public static final String ARG_PLANET_NUMBER = "planet_number";

        public PlanetFragment() {
            // Empty constructor required for fragment subclasses
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment, container, false);
               getActivity().setTitle("title");
            return rootView;
        }

Non capisco dov'è l'errore! Non è da molto che programmo, perciò comprendetemi! ;)

E se qualcuno può spiegarmi la funzione che ARG_PLANET_NUMBER ha in tutto questo, grazie!

Grazie a tutti per l'eventuale aiuto! :)

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema con Navigation Drawer e fragment
« Risposta #1 il: 04 Novembre 2013, 12:50:36 CET »
0
Dovresti postare il logcat...., senza è abbastanza difficile.

   
Codice (Java): [Seleziona]
@Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment, container, false);
               getActivity().setTitle("title");
            return rootView;
        }

A sensazione dico che potresti avere un NullPointerException sul getActivity().

Offline Verkia

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Windows 7
Re:Problema con Navigation Drawer e fragment
« Risposta #2 il: 04 Novembre 2013, 13:02:26 CET »
0
Ecco il logcat...

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema con Navigation Drawer e fragment
« Risposta #3 il: 04 Novembre 2013, 13:29:24 CET »
+1
Codice (Text): [Seleziona]
11-04 13:01:10.584: E/AndroidRuntime(2318): Caused by: java.lang.RuntimeException: Binary XML file line #1: You must supply a layout_width attribute.
Il tuo RelativeLayout è senza width e height
Codice (Java): [Seleziona]
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android">

Offline Verkia

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Windows 7
Re:Problema con Navigation Drawer e fragment
« Risposta #4 il: 04 Novembre 2013, 14:00:44 CET »
0
Appena posso provo a sistemare! Grazie! :)

Post unito: 04 Novembre 2013, 18:08:12 CET
Funziona, grazie mille!
Che errore stupido!  :-o
« Ultima modifica: 04 Novembre 2013, 18:08:12 CET da Verkia, Reason: Merged DoublePost »