385 Stimmen

Was macht der LayoutInflater in Android?

Was ist der Nutzen von LayoutInflater in Android?

2voto

Muhammed Shibin Punkte 37

Der Layout Inflater ist eine Klasse, die die XMLErscheinungsbeschreibung liest und in Java-basierte View-Objekte umwandelt.

1voto

seanjfarrell Punkte 231

LayoutInflater erstellt View-Objekte auf der Grundlage von in XML definierten Layouts. Es gibt verschiedene Möglichkeiten, den LayoutInflater zu verwenden, z.B. das Erstellen von benutzerdefinierten Ansichten, das Aufblasen von Fragment-Ansichten in Activity-Ansichten, das Erstellen von Dialogen oder das einfache Aufblasen einer Layout-Datei-Ansicht in eine Activity.

Es gibt viele Missverständnisse darüber, wie der Inflationsprozess funktioniert. Ich denke, das kommt von der mangelhaften Dokumentation der Methode inflate(). Wenn Sie die inflate()-Methode im Detail kennenlernen möchten, habe ich hier einen Blogbeitrag darüber geschrieben:

https://www.bignerdranch.com/blog/understanding-androids-layoutinflater-inflate/

0voto

Meine Liste anpassen hoffen, dass es Konzept illustrieren

public class second extends ListActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);
//  TextView textview=(TextView)findViewById(R.id.textView1);
//  textview.setText(getIntent().getExtras().getString("value"));

    setListAdapter(new MyAdapter(this,R.layout.list_item,R.id.textView1, getResources().getStringArray(R.array.counteries)));
}

private class MyAdapter extends ArrayAdapter<String>{

    public MyAdapter(Context context, int resource, int textViewResourceId,
            String[] objects) {
        super(context, resource, textViewResourceId, objects);
        // TODO Auto-generated constructor stub
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        LayoutInflater inflater=(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row=inflater.inflate(R.layout.list_item,parent,false);
        String[]items=getResources().getStringArray(R.array.counteries);

        ImageView iv=(ImageView) row.findViewById(R.id.imageView1);
        TextView tv=(TextView) row.findViewById(R.id.textView1);
        tv.setText(items[position]);

        if(items[position].equals("unitedstates")){
            iv.setImageResource(R.drawable.usa);
        }else   if(items[position].equals("Russia")){
            iv.setImageResource(R.drawable.russia);
        }else   if(items[position].equals("Japan")){
            iv.setImageResource(R.drawable.japan);
        }
        // TODO Auto-generated method stub
        return row;
    }

}

}

0voto

vishwas Punkte 11

LayoutInflater ist eine grundlegende Komponente in Android. Sie müssen ihn ständig verwenden, um Xml-Dateien in Ansichtshierarchien zu verwandeln.

0voto

Inflater tatsächlich eine Art von konvertieren, um Daten, Ansichten, Instanzen, um sichtbare UI-Darstellung. damit es die Verwendung von Daten-Feed in von vielleicht Adapter, etc. programmatisch. dann die Integration mit einem xml Sie definiert, dass es sagt, wie die Daten in UI dargestellt werden sollte

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X