0

アプリのすべてのアクティビティに表示するカスタム タイトル バーを作成しました。それは私の主な活動で完全に機能します:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);

しかし、私の主な活動は別の活動を呼び出し、そこで同じことをしようとすると失敗します:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.layout_2);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);  

findViewById()クラッシュを実行しようとすると、何が起こっているかを確認するために try/catch でラップしました。

TextView tv1;
try {    
    tv1 = (TextView)findViewById(R.id.header);
}
catch (Exception e)  {
    Log.d("MyActivity2", "boom");  
}

例外には 、cause=ClassCastException detailMessage=android.widget.RelativeLayout というメッセージが表示されます

requestWindowFeature ()getWindow ()呼び出しをコメントアウトしても問題はありません

これについての洞察を事前にありがとう!!!

4

1 に答える 1

1

R.id.header が TextView ではないことを意味する ClassCastException を取得している場合。あなたのレイアウトheaderでは、Relativelayout の名前です。したがって、これを TextView のものと一致するように変更します。

于 2012-08-15T21:53:20.760 に答える