0

相対レイアウトの背景を設定しようとしていますが、

relativeLayout1.setBackgroundColor(0x00000000);

私のプログラムはクラッシュし続けます。これがlogcatです。

コード:

RelativeLayout window=(RelativeLayout) findViewById(R.id.window);
window.setBackgroundColor(0x00000000);

setContentView(R.layout.something);それは通常のコードとは別に唯一のものですsuper.onCreate(savedInstanceState);

コード全体:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_invisible);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
    window=(RelativeLayout) findViewById(R.id.window);
        window.setBackgroundColor(0x00000000);
}
4

4 に答える 4

1

添付の logcat から、背景色を設定しようとしているときにwindowポインターが表示されている可能性が最も高いと言えます。nullさまざまな種類の問題が原因である可能性があります。

  • something.xmlレイアウトには属性を持つ要素が含まれていませandroid:id="@+id/window"
  • あなたのsomething.xmlレイアウトには属性を持つ要素が含まれていますが、この要素はそうではありませandroid:id="@+id/window"RelativeLayout
  • プロジェクト リソース データが台無しになりました。Project->Clean を実行してリソースを再構築してみてください
于 2013-01-14T19:49:38.950 に答える
0

代わりにこれを使用できます 相対的な layout.setBackgroundDrawable(get resources().get drawable(R.drawable.bg);

または、XML android で定義することもできます: background="@drawable/bg"

于 2013-01-14T19:57:23.293 に答える
0

R.layout.somethingid のレイアウトはありますR.id.windowか?

多分あなたは何かを逃しましたか?

于 2013-01-14T19:49:05.310 に答える
0

これは、Eclipse のもう 1 つの瞬間でした。私のコードはコンパイルされなかったので、古いコードを実行していました。Eclipse を再起動すると、アプリが正常に動作するようになりました。

于 2013-01-15T04:08:59.897 に答える