声明TextView和ToggleButton时出现“强制关闭”错误

时间:2011-05-29 17:38:32

标签: android textview togglebutton

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

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

然后我在togglebutton上也有错误

ToggleButton silent=(ToggleButton)findViewById(R.id.silentbutton);
silent.setChecked(false);

我的所有其他按钮/ textview都有错误,任何人都可以帮忙吗?!

编辑: 我不能发布照片,因为我是新成员,:( 链接到imgshack http://imageshack.us/photo/my-images/849/unledggp.png/

如果是整个textview代码段的代码。

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();

}

3 个答案:

答案 0 :(得分:1)

查找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);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

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