Newsgroup: it.comp.java
Titolo: [ANDROID] Problema con i Fragment

Sto leggendo un manuale sulla programmazione Android, e sono alle prese 
con i Fragment.
Il seguente programma (che ho copiato da un tutorial) NON funziona, il 
metodo "add" della riga
 
ft.add(R.id.container, new HelloFragment());
 
e' sottolineato in rosso, MA CHE ERRORE C'E'?
I pannelli "Console" e "LogCat" di Eclipse sono entrambi completamente 
vuoti.
 
Quando vado con il mouse sopra a "add" mi appare scritto:
 
The method add(int, Fragment) in the type FragmentTransaction is not 
applicable for the arguments (int,
HelloFragment)
 
invece a me sembra che i parametri siano corretti.
 
********** MainActivity.java **********
package com.prove.provaproject_33_fragment;
 
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBarActivity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
 
public class MainActivity extends ActionBarActivity
{
     @Override
     protected void onCreate(Bundle savedInstanceState)
     {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         if (savedInstanceState == null)
         {
         	/*
             getSupportFragmentManager().beginTransaction().add(
             	R.id.container, new HelloFragment()).commit();
             */
         	android.support.v4.app.FragmentManager 
manager=getSupportFragmentManager();
         	FragmentTransaction ft=manager.beginTransaction();
         	// Il metodo "add" e' sottolineato in rosso, PERCHE?
         	ft.add(R.id.container, new HelloFragment());
         	ft.commit();        	
         }
     }
}
 
class HelloFragment extends Fragment
{
     public HelloFragment() {
     }
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState)
           {
         View rootView = inflater.inflate(R.layout.fragment_main, 
container, false);
         return rootView;
 
     }
 
}
 
********** activity_main.xml **********
<FrameLayout
     xmlns:android="
http://schemas.android.com/apk/res/android
"
     android:id="@+id/container"
     android:layout_width="match_parent"
     android:layout_height="match_parent"/>
 
********** fragment_main.xml **********
<RelativeLayout
     xmlns:android="
http://schemas.android.com/apk/res/android
"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:padding="@dimen/activity_vertical_margin">
 
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="fragment_main" />
</RelativeLayout>
 
---
Questa e-mail è priva di virus e malware perché è attiva la protezione avast! Antivirus.
http://www.avast.com
 
 

 con i Fragment.
 
Per l'ennesima volta: vai a scrivere su un newsgroup dedicato ad
Android. Qua si parla di Java.
 
Ciao Jack
-- 
Yoda of Borg am I! Assimilated shall you be! Futile resistance is, hmm?

 Ciao Jack
 
 
In italiano NON esistono newsgroup dedicati alla programmazione Android, 
questo e' il newsgroup che ci si avvicina
di piu'.


 di piu'.
 
si, ma qua sei offtopic e non e' detto che la gente qua dentro abbia
voglia di leggere le tue domande su android (come me ad esempio) e/o
sappia rispondere.
 
Poi fai tu, io alla tua prossima domanda su android ti metto nel
killfile, percui non vedro' piu' nessun tuo post, neanche quelli
legittimi su java.
 
Ciao Jack
 
PS: un programmatore che non sa l'inglese e' come un macellaio vegano.


 In italiano NON esistono newsgroup dedicati alla programmazione Android,
Se e' per questo, la documentazione fruibile su Android e' praticamente 
tutta in inglese, per cui bisogna che ti attrezzi.
Posso essere smentito, ma per esperienza ti posso dire che non leggere o 
scrivere in inglese con una certa padronanza, per un programmatore e' 
spesso una lacuna da colmare al piu' presto.
Quindi:
1)impara l'inglese
2)impara il java
3)impara eclipse
4)impara android
e' la sequenza imprescindibile nell'ordine indicato.
 
 

 }
 
Perchè anche se HelloFragment estende la classe Fragment, il tipo non è 
Fragment ma HelloFragment, e il metodo add non è definito con questa firma.
 
Saluti