webentwicklung-frage-antwort-db.com.de

getLayoutInflater () in Fragment

Ich versuche, meine Ergebnissuche in einer ListView auf der Fragment anzuzeigen, schlägt jedoch fehl:

LayoutInflater inflater = getLayoutInflater();

Die Methode getLayoutInflater (Bundle) im Typ Fragment lautet nicht anwendbar für die Argumente ()

Das ist mein Code:

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);

  }

Wie kann ich das beheben?

45
udinsekomplek

wenn Sie in einem Fragment sind, möchten Sie 

getActivity().getLayoutInflater();

oder

LayoutInflater.from(getActivity());

sie können auch tun 

View.inflate();

oder

LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
149
tyczj

In Activity kannst du so verwenden:

this.getLayoutInflater();

Für Fragment müssen Sie das Schlüsselwort "this" durch "getActivity ()" ersetzen.

getActivity().getLayoutInflater();

Hoffe das wird helfen!

4
chan sopheap

Jetzt wissen Sie nicht, wann Sie es in Ihrem Fragment (Support Library V4) erhalten können

getLayoutInflater(null);
3
Ahmed Hegazy

Wenn Sie das Layout vergrößern möchten (untergeordnetes Layout an übergeordnetes Element anhängen) in Fragment 

Verwenden Sie diesen Code

LayoutInflater inflater = (LayoutInflater) getActivity() .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

Nun zu Inflate untergeordnetem Layout 

View view = inflater.inflate(R.layout.layout_child, null);

Viel Spaß beim Codieren :)

0
Hamza Mehmood

Benutze es:

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