基本上我有一个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();
}
答案 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));