Frage

Ich habe ein Viewgroup definiert in XML mit Blick nach innen, um onCreate Zeit mag ich eine Variable von denen haben.
Ich will nicht ein Listview + Adapter verwenden Ursache seiner deutlich übertrieben durch den Aufwand gehen, wie ich die Liste nicht wissen, da onCreate ändern ()
Dies ist mehr oder weniger der Code Ich mag würde zu haben.

TextView mytextview = myViewGroup.findViewById(R.id.mytext);

for(String test : strings){
  mytextview = mytextview.clone();
  mytextview.setText(test);
  myViewGroup.addView(mytextview);
}

Aber es funktioniert nicht.

War es hilfreich?

Lösung

Vielleicht einen inflater verwenden, und setzen Sie den Textview in einer externen Layout-Datei:

View v = LayoutInflater.from(this).inflate(R.layout.textview_include, null);
viewGroup.addView(v);

Andere Tipps

Wenn Sie dies tun, werden Sie wahrscheinlich erhalten genau die gleiche ID für jede Ansicht auf diese Weise erstellt. Dies bedeutet, dass Dinge wie ((Textview) v) .setText ( "some text") zu tun; wird auf jeder Textview zuvor aus dem gleichen Layout aufgeblasen aufgerufen werden. Sie können es immer noch diese Art und Weise tun, aber Sie sollten setId () aufrufen und eine vernünftige Methode haben Sie für die Gewährleistung in einer Reihe nicht zweimal die gleiche ID erhalten -. Inkrementierung oder Weltzeit, etc

Außerdem glaube ich, Android Reserven einen bestimmten Bereich von IDs für dynamisch-IDs erstellt. Sie könnten vermeiden ID ist in diesem Bereich; aber ehrlich gesagt, ich weiß nicht, das ID-System funktioniert so dass ich in diesem Punkt falsch sein könnte.

Mit Code von Mathias Lin und mit dem Hauch von javahead76:

LinearLayout x = (LinearLayout) findViewById(R.id.container); 

    for (int i = 0; i < 5; i++) {
        View c = LayoutInflater.from(this).inflate(R.layout.singlerow, x);  
        TextView t = ((TextView)findViewById(R.id.textView1));
        t.setId(i+10000);
        t.setText("text"+i);            
    }
    TextView b = (TextView) findViewById(10003);
    b.setText("10003");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top