簡體   English   中英

如何在Android中實例化多個自定義視圖?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM