2014-10-14 15 views
40

Sto cercando di dimostrare la mia ricerca si traduce in una ListView sul Fragment, ma fallisce su:getLayoutInflater() nel frammento

LayoutInflater inflater = getLayoutInflater(); 

Il metodo getLayoutInflater (Bundle) nel tipo frammento non è applicabile per gli argomenti()

Questo è il mio codice:

public View getView(int position, View convertView, ViewGroup parent) 
    { 
    LayoutInflater inflater = getLayoutInflater(); 
    View row; 

    row = inflater.inflate(R.layout.list_single, parent, false); 

    TextView textview = (TextView) row.findViewById(R.id.TextView01); 
    ImageView imageview = (ImageView) row 
    .findViewById(R.id.ImageView01); 

    textview.setText(data_text[position]); 
    imageview.setImageResource(data_image[position]); 

    return (row); 

    } 

Come posso risolvere questo problema?

+0

'LayoutInflater gonfiatore = LayoutInflater.from (getActivity());' – Blackbelt

risposta

137

se si è in un frammento si desidera

getActivity().getLayoutInflater(); 

o

LayoutInflater.from(getActivity()); 

anche che si può fare

View.inflate(); 

o

LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
+0

provo questo LayoutInflater gonfiatore = (LayoutInflater) context.getSystemService (Context.LAYOUT_INFLATER_SERVICE); ma l'errore, "contesto non può essere risolto" – udinsekomplek

+1

Sì è bisogno di ottenere contesto ... – tyczj

+0

Non capisco non ho contesto variabel – udinsekomplek

2

Ora e non so da quando si può ottenere nel vostro Fragment (supporto alle librerie v4) da

getLayoutInflater(null); 
+0

Il passaggio di null sta perdendo i valori del tema – busylee

+0

@busylee Il parametro è un pacchetto nullable - savedFragmentState. Non capisco dove possa essere la connessione ai "valori del tema". –

0

Usalo:

LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
+0

può aggiungere aggiungere ulteriori informazioni sopra la domanda – Kondal

2

In attività è possibile utilizzare in questo modo:

this.getLayoutInflater(); 

per Frammento è necessario sostituire parola chiave "questo" con "getActivity()"

getActivity().getLayoutInflater(); 

Spero che questo possa aiutare!

Problemi correlati