[英]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.