0
を
私は私の活動のレイアウトにボタンを追加する機能を持っている:タイマーでレイアウト上のビューを追加 - 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
からボタン機能を1回呼び出すと、ボタンが期待どおりに追加されます。
タイマーで呼び出す理由は何ですか?
LogCatのエラーメッセージを参照してください。私の推測では、非UIスレッドからUIを変更することはできません。 – nbokmans
アプリケーションが停止すると、どのような種類の例外/ログが表示されますか? Timerをどこで作成していますか?レイアウトを拡張する前に作成してfindViewByIdをnullにすることは可能でしょうか? – merterpam
@merterpam - 私はタイマー "onCreate"メソッドを作成します。 – Joe