2012-02-01 9 views

Odpowiedz

4
LinearLayout lLayour = new LinearLayout(context); 
parentWidget.addView(lLayout); 
+0

A gdzieś tam przypisać wszystkie jego właściwości (zakładając, że potrzebujesz czegoś innego niż domyślne). – jwatts1980

+0

Możesz również ustawić opcję LayoutParams dla elementu LinearLayout podrzędnego. lLayout.setLayoutPatams (layoutParams), – ihrupin

+0

@ Hype jak uzyskać parentWidget? Jestem wewnątrz metody onCreate klasy, która dziedziczy klasę Activity i widok to setContentView (R.layout.someLayout) –

4

Najprostszym sposobem jest stworzenie layoutu w formacie XML i napompować go za pomocą

LayoutInflater.from(context).inflate(R.layout.my_linear_layout);

Można też do setId() dodana swoich poglądów, dzięki czemu można łatwo uzyskać do nich dostęp później.

2

Rozwiązałem go za pomocą RelativeLayout, z którym łatwiej było mi pracować. Tak, oczywiście jak faceci wskazani powyżej użyłem setId(). Oto kod, który zaimplementowałem:

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

    ScrollView sv = new ScrollView(this); 

    //Parent RelativeLayout 
    parentLayout = new RelativeLayout(this); 
    parentLayout.setBackgroundColor(Color.WHITE); 
    params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    parentLayout.setLayoutParams(params); 
    sv.addView(parentLayout); 

    final String[] comList = getCommunication(); 
    int listLength=0; 
    try{ 
    listLength= comList.length/3; 
    }catch(Exception e){System.out.println(e);System.exit(0);} 

    childLayout= new RelativeLayout[listLength] ; 
    TextView[] tvName = new TextView[listLength]; 
    TextView[] tvDate =new TextView[listLength]; 
    TextView[] tvMsg =new TextView[listLength]; 

    for(int i =0;i<listLength;i++){ 
     try{ 

     childLayout[i] = new RelativeLayout(this); 
     childLayout[i].setPadding(5, 5, 5, 5); 
     params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 75); 
     if(i==0){params.addRule(RelativeLayout.BELOW);} 
     else{params.addRule(RelativeLayout.BELOW,i);} 
     childLayout[i].setId(i+1); 
     childLayout[i].setClickable(true); 
     childLayout[i].setLayoutParams(params); 
     childLayout[i].setOnClickListener(new OnClickListener(){ 
      @Override 
      public void onClick(View v) { 


       //Create the intent 
        Intent i = new Intent("ACTIIVTY"); 
        startActivity(i); 
      }  
     }); 

     tvName[i] = new TextView(this); 
     params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     params.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
     tvName[i].setLayoutParams(params); 
     childLayout[i].addView(tvName[i]); 
     if(comList[i*3].length()>24){ 
      String name = comList[i*3].substring(0,24)+"..."; 
      tvName[i].setText(name); 
     }else{ 
      tvName[i].setText(comList[i*3]); 
     } 
     tvName[i].setId(listLength+1+i); 
     tvName[i].setTextSize(12); 
     tvName[i].setTextColor(Color.BLACK); 

     tvDate[i] = new TextView(this); 
     params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
     tvDate[i].setLayoutParams(params); 
     childLayout[i].addView(tvDate[i]); 
     tvDate[i].setTextSize(11); 
     tvDate[i].setTextColor(Color.BLUE); 
     tvDate[i].setText(comList[i*3+1]); 


     tvMsg[i] = new TextView(this); 
     params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     params.addRule(RelativeLayout.BELOW, listLength+1+i); 
     tvMsg[i].setLayoutParams(params); 
     childLayout[i].addView(tvMsg[i]); 
     tvMsg[i].setTextSize(11); 
     tvMsg[i].setTextColor(Color.GRAY); 
     if(comList[i*3+2].length()>96){ 
      String msg = comList[i*3+2].substring(0,96)+"..."; 
      tvMsg[i].setText(msg); 
     }else{ 
      tvMsg[i].setText(comList[i*3+2]); 
     } 

     parentLayout.addView(childLayout[i]); 

     }catch(Exception e){System.out.println("Errrorrrrr");} 
    } 

    setContentView(sv); 
} 
Powiązane problemy