android动态创建的Textview怎么获取或者给他设置一个ID

android动态创建的Textview怎么获取或者给他设置一个ID,第1张

ID本身是个int类型的,就算设置也只能给一个随机不重复的int数字,但是如果想要通过字符串去实现,用个HashMap把键值对存下来

final static HashMap<String, Integer>listView = new HashMap<String, Integer>()

赋值IDlinearLayout.setId(唯一id)

键值对listView.put(字符串id, 前边定义的唯一int ID)

获取

public static Integer getViewIdById(String id){

if (listView.containsKey(id))

return listView.get(id)

else

return -1

}

在线性布局LinearLayout里加入view比较简单,因为属性比较少,布局简单 示例,加入一个TextView LinearLayout layout = (LinearLayout)findViewById(R.id.layout)TextView tv = new TextView(this)tv.setText("hello,world")LayoutParams l

DecorView 是android 界面的顶级View ,当前界面的整个即为DecorView。DecorView为FrameLayout,而DecorView 一般会包含一个竖直方向的LinearLayout。这个竖直方向的LinearLayout 一般分为两个部分(具体Android版本和主题有所不同),上部分为标题栏,下部分为内容栏,而内容栏的id 为 android.R.id.content, 内容栏也是FrameLayout,我们使用setContentView(),的布局加入的就是内容栏。

动态添加View 一般是添加在我们自己的布局文件里,而setContentView时加入的我们的布局是内容栏的第一个子View,所以我们需要获取到我们的布局对应的View。

####如何获取DecorView?

在Activity 中直接调用 getWindow().getDecorView()

####如何获取ContentView?

在Activity中调用

FrameLayout contentView = (FrameLayout)getWindow().getDecorView().findViewById(android.R.id.content)

或直接:

FrameLayout contentView = (FrameLayout)activity.findViewById(android.R.id.content)

####获取我们填充的布局

ViewGroup viewGroup = (ViewGroup)contentView.getChildAt(0)

####添加View


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11760939.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存