我试图在侦听器类中处理微调器的onItemSelected事件时通过ID获取TextView。在我的主要活动中,我可以调用findViewById(R.id.textView1),它工作正常。但是,如果我在我的微调监听器类中调用相同的函数,它总是返回null并强制应用程序关闭。Android findViewById在主类以外的类中使用时返回null活动
任何人都知道为什么findViewById在我的主要Activity中工作,但不在我的侦听器类中?
这是我主要活动的代码。点击一个按钮,当它被称为:
public void something()
{
setContentView(R.layout.spinnerLayout);
Spinner spinner = (Spinner) findViewById(R.id.mySpinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.spinner_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
}
这里是MyOnItemSelectedListener代码:
public class MyOnItemSelectedListener implements OnItemSelectedListener
{
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
{
TextView tv = view.findViewById(R.id.myTextView);
// I want to set the text of this text view to the value selected using the spinner
tv.setText("Something");
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
什么我需要做的就是“TextView的电视= view.findViewById(R.id .myTextView);”上班?
谢谢!
在我的主Activity中,我已经调用了setContentView(R.layout.somename)。然后布局显示微调,当我从列表中选择一个项目时,我需要它使用findViewById更新TextView。 – Bumper 2011-03-07 17:59:34
对不起,我把“somename”,因为我没有我的代码在我面前,但它确实将内容视图设置为微调器所在的布局。 – Bumper 2011-03-07 18:04:07
粘贴完整的代码,以便我们可以提供诊断。 – Cristian 2011-03-07 18:09:45