[英]How to add dynamic views to android layout in recyclerview adapter
[英]Add Views on layout with timer - Android
我有一个向活动布局添加按钮的功能:
void addLeftButton() {
Button btn = new Button(this);
int height = 200;
int width = 300;
btn.setLayoutParams(new LinearLayout.LayoutParams(width, height));
btn.setTag(10);
RelativeLayout layout = (RelativeLayout) findViewById(R.id.activity_main);
layout.addView(btn);
}
我用这样的计时器调用此函数:
Timer t = new Timer();
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
addLeftButton();
}
},0,10);
由于某些原因,该应用会立即启动和停止。 如果我从onCreate
调用过一次按钮功能,则可以按预期添加按钮。
有什么想法为什么用定时器调用不起作用?
我认为nbokmans是正确的,问题应该是因为您尝试从非UI线程修改UI元素。 可以使用runOnUiThread
代替Timer:
final Handler mHandler = new Handler();
runOnUiThread(new Runnable() {
@Override
public void run() {
Button btn = new Button(StartActivity.this);
int height = 200;
int width = 300;
btn.setLayoutParams(new LinearLayout.LayoutParams(width, height));
btn.setTag(10);
ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.deneme);
layout.addView(btn);
mHandler.postDelayed(this, 10);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.