0

基本的に、私はテキストビューを持っており、アプリケーションが作成されると、テキストビューのテキストとして文字列が設定されますが、電話でアプリを実行すると強制終了エラーが発生します。

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 へのリンクhttp://imageshack.us/photo/my-images/849/unledggp.png/

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

}
4

3 に答える 3

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);
于 2011-05-29T18:00:00.613 に答える
0

エラー ログ (正しいエラー ログと仮定) を見ると、checkWifiメソッドに ClassCastException があります。質問を編集して、すべてのonCreateメソッドとすべてのメソッドを含めcheckWifiますが、複数のビューに同じ ID を使用していると思います。

于 2011-05-29T17:51:47.313 に答える
0

私が考えることができる2つのこと(ただし、より多くのコードを見ると役立ちます)。

呼び出していることを確認してくださいsetContentView(R.layout.main)(または、レイアウト ファイルの名前が何であれ)。を使用する前にこれを行ってくださいfindViewById(...)

次にsdcard.setText(R.string.not_mounted);、このステートメントR.string.not_mountedには文字列ではなくリソース ID (int) が含まれています。使用する必要があります...

sdcard.setText(getString(R.string.not_mounted));
于 2011-05-29T17:54:38.033 に答える