2011-03-23 70 views
0

我有一个游戏在一个线程中运行,并且我想修改线程内视图的边距。从Android的线程内更改布局保证金

以下代码对于从主Activity更改视图的边距时可以正常工作,但我需要在AlertDialog关闭后从线程内部更改它们。

View view = (View) findViewById(R.id.viewname); 
ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) View.getLayoutParams(); 
mlp.setMargins(0, 10, 0, 0); 

但是,在线程中,相同的代码只是返回空指针异常。

我不知道该怎么做。

回答

0

在您的活动中添加一个函数来修改边距。然后从你的主题中调用它。你可以看到一个使用Handler和Runnable的例子here

+0

我把函数放在我的主要活动中,但是线程是从主活动中创建的独立视图运行的,我似乎无法引用它。 – 2011-03-23 19:54:32

+0

您的意思是线程是在单独的Activity中创建的?如果它真的很长,你可以发布更多的代码,也许在一个要点(https://gist.github.com/)中? – 2011-03-23 20:32:54