Android &引用;“强制关闭”;声明TextView和ToggleButton时出错

Android &引用;“强制关闭”;声明TextView和ToggleButton时出错,android,textview,togglebutton,Android,Textview,Togglebutton,基本上,我有一个textview,当应用程序创建时,它会设置一个字符串作为textview文本,这并不难,但当我在手机上运行应用程序时,我会遇到一个强制关闭错误 TextView sdcard=(TextView)findViewById(R.id.sd_textview); sdcard.setText(R.string.not_mounted); 然后我在切换按钮上也有一个错误 ToggleButton silent=(ToggleButton)findViewById(R.id.sile

基本上,我有一个textview,当应用程序创建时,它会设置一个字符串作为textview文本,这并不难,但当我在手机上运行应用程序时,我会遇到一个强制关闭错误

TextView sdcard=(TextView)findViewById(R.id.sd_textview);
sdcard.setText(R.string.not_mounted);
然后我在切换按钮上也有一个错误

ToggleButton silent=(ToggleButton)findViewById(R.id.silentbutton);
silent.setChecked(false);
我所有其他按钮/文本视图都有错误,有人能帮忙吗

编辑: 我不能发照片,因为我是新会员:( 链接到imgshack

整个textview代码段的If代码

if     (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_UNMOUNTED)) {

TextView sdcard=(TextView)findViewById(R.id.sd_textview);
sdcard.setText(R.string.not_mounted);

}
OnCreate函数

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

checkSD();
checkRing();
checkWifi();
checkBt();

}
查看您的错误日志(假设它是正确的错误日志),您在
checkWifi
方法中有一个ClassCastException。编辑您的问题并包括所有
onCreate
方法和所有
checkWifi
方法,但我希望您在多个视图中使用相同的id。

我可以想到两件事(尽管看到更多代码会有所帮助)

确保已调用
setContentView(R.layout.main)
(或调用布局文件的任何内容)。在尝试使用
findViewById(…)
之前,请执行此操作

其次,
sdcard.setText(R.string.not_mounted);
在此语句中,
R.string.not_mounted
是资源ID(int)而不是字符串。您需要使用

sdcard.setText(getString(R.string.not_mounted));

查找
sd_textview
的所有实例,并确保您尝试引用的实例是
textview
。如果您希望更清晰,可以调试代码,并通过不强制转换到
textview
,查看实际返回的对象:

View sdcard = findViewById(R.id.sd_textview); //debug this
//you can also log the View object to see the type 
Log.d("Test", "" + sdcard);

您可以添加Logcat错误吗?发布Logcat消息和布局。您是否调用了
setContentView()
?您能发布这些代码片段出现在其中的方法的其余部分以及您的布局吗?很难提供这些小信息。这通常是因为
findViewById
返回
null
,这意味着找不到具有给定ID的视图。如果没有更多上下文,将很难确定原因。我可以不要添加logcat图片,因为我是新来的。好吧,我会把它登到我仍然得到的主要帖子上,并强制关闭,即使是与getString@Ciehanski:Post your main.xmlI检查了它,它声明了sd_textview。与R.java/中的一样,您能解释一下我如何调试setText吗?您使用Eclipse吗?您可以添加断点(双击相关行的左边距),然后“调试”您的项目(与普通的“运行”相比),它是播放图标旁边的错误图标。一旦您的代码达到该点,调试器将弹出,您可以查看存储在
sdcard
视图中的值。啊哈,是的,当它执行sdcard的setText时,它会说,该sdcard无法解决…我如何解决此问题?谢谢您这有助于解决我的问题