2012-03-29 2 views
0

Ich bin in der Contentview von seekbarlist.xml und muss das Layout von seekbars.xml bekommen. Ich muss das Layout an CustomSeekBar-Konstruktor senden. Unten sehen Sie, dass ich versucht habe, die Inhaltsansicht auf ein Layout zu setzen, es zu greifen und dann auf das andere zu wechseln. Dies funktioniert nicht b/c Ich muss die Listenaktivität erweitern und das Layout muss einen Eintrag mit der ID "list" enthalten. seekbars.xml hat keine "Liste" und es wäre nicht sinnvoll, sie zu haben. Wie bekomme ich das Layout von Suchleisten?Android: Wie bekomme ich ein XML-Layout von einem anderen Contentview

public class ColorsActivity extends ListActivity { 
/** Called when the activity is first created. */ 

//Array Adapter that will hold our ArrayList and display the items on the ListView 
SeekBarAdaptor seekBarAdaptor; 

//List that will host our items and allow us to modify that array adapter 
ArrayList<CustomSeekBar> seekBarArrayList=null; 
// TextView myValueText; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.seekbars); 
    LinearLayout myLayout = (LinearLayout)findViewById(R.layout.seekbars); 

    setContentView(R.layout.seekbarlist); 

    //Initialize ListView   
    ListView lstTest= getListView(); 


    //Initialize our ArrayList 
    seekBarArrayList = new ArrayList<CustomSeekBar>(); 

    //Initialize our array adapter 
    seekBarAdaptor = new SeekBarAdaptor(ColorsActivity.this, R.layout.seekbars, seekBarArrayList); 

    CustomSeekBar red = new CustomSeekBar(this, myLayout, "red", 1); 
    //CustomSeekBar blue = new CustomSeekBar(this, "blue"); 
    //CustomSeekBar green = new CustomSeekBar(this, "green"); 

    //Set the above adapter as the adapter of choice for our list 
    lstTest.setAdapter(seekBarAdaptor); 

    seekBarArrayList.add(red); 
    //seekBarArrayList.add(blue); 
    //seekBarArrayList.add(green); 

    Amarino.connect(this, "00:11:11:21:05:53"); 
} 

} 

Antwort

3

Sie müssen LayoutInflator verwenden.

Sie können NULL an den ViewGroup-Parameter übergeben.

einige mehr auf LayoutInflator hier http://developer.android.com/reference/android/view/LayoutInflater.html

+0

die Eltern haben Sie da sein soll ein Viewgroup Lesen auf. Sie meinen, die Ansicht von der übergeordneten Aktivität abzurufen? Wie würde ich das machen? – Spectrem

+0

Der Elternparameter ist optional. Sie können es null machen. Ich aktualisiere die Antwort und verwende eine andere Version der inflate() Methode – Shubhayu

+0

Ah. Also ein layout-inflater-Objekt erstellen? 'LayoutInflater inflater = (LayoutInFlater) context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);' Es scheint, dass ich dieses Problem mehrmals hatte, indem ich Ansichten verwendete, die nicht speziell zu meinem Umfang gehören. Ist das so üblich? – Spectrem

Verwandte Themen