2011-11-18 63 views
0

在我的應用程序活動時得到加載,我做NUM以下文本在一個TextView不改變,而這樣做吹氣佈局

setContentView(R.layout.main2); 
layoutToAdd = (LinearLayout) findViewById(R.id.linearLayout1); 

for(i=0; i<num;i++) 
{ 
    LayoutInflater inflater = LayoutInflater.from(getApplicationContext()); 
    View view = inflater.inflate(R.layout.camera, null); 
    layoutToAdd.addView(view); 
} 

的值不同每次。

在我的LayoutInflater佈局我有一個文本視圖,編輯文本和一個按鈕。

現在,他們根據num中提到的次數顯示,現在每次我都希望改變文本和按鈕的名稱。如何設置TextView和Button的文本。

回答

2

只需設置他們,你吹的佈局

View view = inflater.inflate(R.layout.camera, null); 
TextView tv = view.findViewById(R.id.textviewid); //id defined in camera.xml 
Button b = view.findViewById(R.id.buttonid);  //id defined in camera.xml 
tv.setText(); 
b.setText(); 
layoutToAdd.addView(view); 
+0

感謝您的回答。你可以請我說如何找到一個特定的按鈕被點擊佈局inflater ..... –

+1

你可以setTag()http://developer.android.com/reference/android/view/View.html# setTag(java.lang.Object)爲您的按鈕(根據num例如'view.findViewById(R.id.buttonid).setTag(new Integer(num));')當您膨脹它和OnClickListener時獲取此標籤。 'public void onClick(View v){Integer buttonNum = v.getTag();}' – Vladimir

+0

thanx ...我對Inflater有一個疑問。是否可以在同一時間在水平和垂直方向上創建充氣視圖 –

0

後,我認爲它是什麼,你應該創建一個包含只是一個LinearLayout中的XML文件。

然後編程,您應該創建TextViews,EditTexts和Buttons並將其添加到LinearLayout。

你可以像下面設置這些組件的不同屬性:

這裏是例如設置組件的TextView的properties.For休息的,你可以設置相同。

TextView tv=new TextView(context); 
tv.setBackgroundResource(R.drawable.textview_bg); 
tv.setPadding(20, 5, 40, 5); 
tv.setText("set your text"); 
tv.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
tv.setTextColor(Color.RED); 
tv.setClickable(true); 
tv.setId(id);//where id is an integer which should be unique for each TextView 

layout.addView(tv); 

還需要創建並添加所有這三個組件內部的for循環,提供唯一的ID取決於我使用迭代循環!你可以有textviews和按鈕設置一個String數組,其for循環中的名稱,這會讓您更容易將循環中要設置的字符串傳遞給它們。

0

您必須將視圖的引用存儲到一個List中,然後當你想修改list.get(2).findViewById(R.id.textbox_id)。

希望它有幫助。