以编程方式添加视图,然后引用这些视图
Adding views programmatically, then referencing those views.
我是java世界的新手,所以提前感谢您的帮助。
我想做的是:我有两个EditText字段和一个Button。当我点击按钮时,我想获取这两个字段的内容,将它们组合起来并显示在按钮下面。字段将被清除。然后,如果再次填充并按下按钮,则组合字段并将其显示在先前生成的文本视图下方。
示例:
单击按钮之前:
eT1___ eT2____ |按钮|
单击按钮后
eT1___ eT2____ |按钮|
eT1-eT2
点击第二个按钮后
eT1___ eT2____ |按钮|
eT1-eT2
eT1-eT2
依此类推,不管点击多少次按钮。我需要帮助的是正在添加的新视图。目前我使用的是相对布局。我想弄清楚的是如何引用我在代码中创建的新textView,这样当添加新视图时,它们就可以引用以前添加的视图。
这就是我目前一直在尝试的:
private TextView createNewTextView(String desc, Double cost){
RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);;
TextView newTextView = new TextView(this);
if (i==1) {
lparams.addRule(RelativeLayout.BELOW, mButton.getId());
}
else {
lparams.addRule(RelativeLayout.BELOW, mLayout.getId());
}
lparams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
newTextView.setLayoutParams(lparams);
newTextView.setText(desc + " - $" + cost);
newTextView.setTag(i);
i++;
return newTextView;
}
我试图使用"I"作为一个递增变量,我可以使用它来引用以前的视图,除了第一次新视图基于按钮引用时。
如有任何帮助,我们将不胜感激。提前感谢,感谢我已经潜伏的一切!
创建TextView
:的ArrayList
的成员变量
ArrayList<TextView> textviews = new ArrayList<>();
然后在您的createNewTextView()
方法中,存储您要添加的TextView
的引用:
textviews.add(newTextView);
因此,你在第一个添加的TextView
将位于索引0,依此类推。然后你可以很容易地引用你的TextViews
。
假设你想得到第二个TextView
,
TextView secondTv = textviews.get(1);
只需将您的文本视图添加到全局列表中,并根据其中的标记找到它们。
相关文章:
- 如何在MVC5中ajax调用的部分视图中引用外部javascript
- 全局引用b/t模板和视图
- 如果视图中没有Jquery脚本引用,Unobtrusive Javascript Validation是不起作用的
- 如何在另一个视图中获取元素的引用id-UI5
- 从事件回调中引用包含主干视图
- 在挖空中引用对象构造函数外部视图模型的属性
- 如何在Sencha Architect中将控制器引用到视图
- 主干:丢失对实际视图的引用
- 对 ejs 视图文件的引用在构建后不会更改,尽管它在生产中结合了它.js - Javascript MVC
- 使用模态作为模板视图并引用它
- 木偶.js - 项目视图获取父区域引用
- E/Web 控制台 (8272): 未捕获的引用错误: 在视图寻呼机中加载 Web 视图时未定义函数名称:1
- 为什么在剃刀视图页面中引用JSON编码
- 如何扩展/获取对规则视图就地编辑器的引用
- 主干视图未捕获引用错误
- ExtJS控制器引用视图获胜'不要使用不同的别名
- AngularJS,通过引用更新子控制器视图中的ng repeat
- 以编程方式添加视图,然后引用这些视图
- 使用Aurelia's ref属性引用元素的视图模型
- 当引用对象改变时,react .js视图不更新