【发布时间】:2014-01-20 20:30:03
【问题描述】:
如何获取当前活动中某个视图(属于另一个活动)的高度和宽度。 例如。活动一中有一个按钮,我必须借助其 ID 获取活动二中按钮的属性。 (我考虑过视图,因为它可以是 ImageView、TextView、WebView 或任何东西)。
我在这里粘贴我尝试过的代码。
公共类 SecAct 扩展 Activity{
ArrayList<Integer> butList1;
RelativeLayout help;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
help = (RelativeLayout)findViewById(R.id.helplay);
createWidgets();
}
private void createWidgets() {
// TODO Auto-generated method stub
butList1=MainActivity.butList;
int a=butList1.get(0);
View v=(View)(findViewById(a));
int width=v.getWidth();
int height=v.getHeight();
help.addView(v);
System.out.println("id is "+ width);
}
public void close(View v){
finish();
}
}
我能够获得 a 的值,但我无法获得 v(View) 的属性,即高度、宽度或 id 等。我得到一个空指针异常。
【问题讨论】:
-
NPE 到底在哪里?行号??
-
为什么你需要从上次活动中获取视图的高度??
-
View v必须是null。检查 -
System.out.println("id is "+ width);
-
你能给我们看一下 Logcat 消息吗?