gpt4 book ai didi

java - 如何在Android中实例化多个自定义 View ?

转载 作者:行者123 更新时间:2023-11-30 03:17:26 24 4
gpt4 key购买 nike

我对自定义 View 真的很困惑。

我需要定义一个自定义 View ,由一个ImageView 和一个TextView 组成。然后我想根据我已经完成的 php json 响应更改此 View 的内容。

首先,我应该走哪条路:

1) 将自定义 View 定义为 XML,然后“膨胀”、复制等等,然后更改新实例化的文本和图像源等?

2)将自定义 View 定义为Java类,并实例化?

最后,我想将自定义 View 实例化为垂直布局的 subview 。

我目前正在尝试的是路径#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);
}
}

然后我在我的主要 Activity 中尝试了这个:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_arizalarim);

ArizaSatiri as = new ArizaSatiri(getApplicationContext(), attrSet);
}

但是我不知道如何构造一个AttributeSet。

所以请告诉我,我应该选择哪条路径,以及如何动态地完成实例化自定义 View 的次数,次数不限?

最佳答案

属性集是在您通过 xml 添加组件时构建的。您必须在 attrs.xml 中定义自定义组件的属性。 ( http://www.vogella.com/articles/AndroidCustomViews/article.html#additional_attributes )

如果您不想从 xml 创建 View ,那么只需从构造函数中删除属性集,因为 LinearLayout 有一个没有属性集的构造函数:http://developer.android.com/reference/android/widget/LinearLayout.html#LinearLayout(android.content.Context)

关于java - 如何在Android中实例化多个自定义 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19788405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com