Android onCreate ClassCastException

时间:2012-01-25 21:22:04

标签: android xml inflate

我有这个:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LinearLayout layout = (LinearLayout) View.inflate(this, R.layout.main, null);
    setContentView(layout);
    s = (Spinner) findViewById(R.id.spinner1);

抛出一个ClassCastException为什么? 如果我做setContentView(R.layout.main)一切顺利。但我需要在变量中使用布局,因为我需要它来使用广告库。有没有办法扩充XML并在变量中使用布局?

由于

2 个答案:

答案 0 :(得分:1)

哪一行抛出ClassCastException?

此外,您可以使用setContentView(R.layout.main);,然后仍然使用id调用的常规查找视图来获取对根布局的引用。

LinearLayout layout = (LinearLayout)findViewById(R.id.yourParentId);

只要在你调用setContentView()之后,你就会得到一个你可以使用的布局对象的引用。

答案 1 :(得分:1)

它会抛出异常的哪一行?也许布局的根视图不是真正的LinearLayout。或者R.id.spinner1可能不是Spinner