[英]How to instantiate multiple custom views in Android?
我真的對自定義視圖感到困惑。
我需要定義一個自定義視圖,它由一個ImageView
和一個TextView
。 然后我想根據已完成的php json響應更改此視圖的內容。
首先,我應該走哪條路:
1)將自定義視圖定義為XML,然后進行“膨脹”,復制等操作,然后更改新實例化的文本和圖像源等?
2)將自定義視圖定義為Java類,並將其實例化?
最后,我想將自定義視圖實例化為垂直布局的子級。
我目前正在嘗試的是路徑2 。 我定義了這個類:
public class ArizaSatiri extends LinearLayout {
TextView arizaTitle;
//constructor :
public ArizaSatiri(Context context, AttributeSet attrs)
{
super(context, attrs);
// add title , description etc :
arizaTitle = new TextView(context);
arizaTitle.setText("abcef defefef");
this.addView(arizaTitle);
}
}
然后我在主要活動中嘗試了此操作:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_arizalarim);
ArizaSatiri as = new ArizaSatiri(getApplicationContext(), attrSet);
}
但是我不知道如何構造AttributeSet。
因此,請告訴我,我應該選擇哪個路徑,以及如何完成動態地實例化自定義視圖的次數?
通過xml添加組件時,將構造屬性集。 您必須在attrs.xml中定義自定義組件的屬性。 ( http://www.vogella.com/articles/AndroidCustomViews/article.html#additional_attributes )
如果您不想從xml創建視圖,則只需從構造函數中刪除屬性集,因為LinearLayout的構造函數沒有設置attr: http : //developer.android.com/reference/android/widget/LinearLayout.html#LinearLayout (android.content.Context)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.