Was ist der Nutzen von LayoutInflater
in Android?
Antworten
Zu viele Anzeigen?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/
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;
}
}
}
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
- See previous answers
- Weitere Antworten anzeigen