1

カスタムビューについて本当に混乱しています。

と で構成されるカスタム ビューを定義する必要があり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 を構築する方法がわかりません。

どのパスを選択すればよいか、カスタム ビューを何度でも動的にインスタンス化する方法を教えてください。

4

1 に答える 1

1

xml 経由でコンポーネントを追加すると、属性セットが構築されます。attrs.xml でカスタム コンポーネントの属性を定義する必要があります。( http://www.vogella.com/articles/AndroidCustomViews/article.html#additional_attributes )

xml からビューを作成したくない場合は、LinearLayout には属性セットのないコンストラクターがあるため、属性セットをコンストラクターから削除するだけです: http://developer.android.com/reference/android/widget/LinearLayout.html#LinearLayout (android.content.Context)

于 2013-11-05T12:04:15.493 に答える