2011-07-24 8 views
0

をImageViewのを変更:それは何を知っていないため、R.drawable.wizardhatにそれNPE年代AndroidのNPE私は、コードなどを使用して、異なるレイアウトのImageViewのを変更しようとしている別のレイアウトから

 ImageView imageView; 
     imageView = (ImageView) findViewById(R.id.imageView1); 

     imageView.setImageResource(R.drawable.wizardhat); 

しかし、レイアウトが明らかに属し、それはルートレイアウトではない:[画像が配置されている場合] [含むが配置されている双方]

-main
-layout1【コードが含まれている場合]
-layout2

EDIT:わかりました、私は本当にそれを説明しませんでした:コードが実行されるビューは、タブビュー内です。タブビューを保持するレイアウトには、編集しようとしているImageViewを含むレイアウトへのインクルードが含まれています。私は本当に私の質問を正しく言わなかった、私は今編集する:L

これは可能ですか?ありがとう:)

+0

私は一度に1つのレイアウトしか表示していないと思います。なぜ、別のレイアウトのイメージを変更していますか? –

+0

メイン画面には1つのインクルード(編集中の画像ビュー)と1つのframelayout(画像を変更するコードを含むレイアウト)があります –

+0

両方のlayout.xmlファイルを配置できますか? –

答えて

0

実際にはNPEはimageViewです。ビューを膨張させる前に、そのルートレイアウトをあなたのアクティビティのコンテンツビューとして設定する必要があります。 ImageViewlayout1に属している場合は、アクティビティの現在のコンテンツビューであることを確認してから、コード内のどこからでも展開できます。 layout1が現在コンテンツビューでない場合、findViewById()はnullを返します。私はあなたの質問を正しく理解したことを願っています。私は私のアプリのためにした何

+0

これは本当に説明していませんでした。コードが実行されるビューはタブビュー内にあります。タブビューを保持するレイアウトには、編集しようとしているImageViewを含むレイアウトへのインクルードが含まれています。私は本当に私の質問を正しく言わなかった、私は今編集する:L –

0

は以下の通りであった。

inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE); 
layout = inflater.inflate(R.layout.play_grid,(ViewGroup)findViewById(R.id.play_layout_root)); 
gridview = (GridView)layout.findViewById(R.id.play_gridview); 
  • play_gridが
  • play_layout_rootは、このXMLレイアウトのルートIDでGridViewコントロールを保持しているxmlです。
  • play_gridviewは必要なgridviewのIDです。

多分あなたの問題のためにそれを使用することができます。

+0

遅く返事を申し訳ありませんが、私はこれをしました: \t \t ImageView imageButton;\t \t \t LayoutInflater inflater =(LayoutInflater)getApplicationContext()。getSystemService(LAYOUT_INFLATER_SERVICE); \t \t \t View layout = inflater.inflate(R.layout.testpicture、(ViewGroup)findViewById(R.id.imageView1)); \t \t \t imageButton =(ImageView)layout.findViewById(R.id.imageView1); \t \t \t \t imageButton.setImageResource(R.drawable。ウィザードハット); \t \t \t 、それが仕事didntの –

+0

は、それが適切である、ここで失敗:返事が遅れについて 申し訳ありませんが、私はこれでした: \t \t 'ImageViewのIMAGEBUTTONを。\t \t \t LayoutInflater inflater =(LayoutInflater)getApplicationContext()。getSystemService(LAYOUT_INFLATER_SERVICE); \t \t \t View layout = inflater.inflate(R.layout.testpicture、(ViewGroup)findViewById(R.id.imageView1)); \t \t \t imageButton =(ImageView)layout.findViewById(R.id.imageView1); \t \t \t \t imageButton.setImageResource(R.drawable.wizardhat); ' \t \t \t 、それdidntの仕事(編集編集:私は
arwerawgwr行うのですか)あなたが使用 –

+0

' inflater.inflateを(R.layout.testpicture (ViewGroup)findViewById(R.id.imageView1)); 'inflater.inflate(R.layout.testpicture、(ViewGroup)findViewById(R.id。)すべてのものを保持するレイアウトのID。あなたのtestpicture.xmlは、begin "));' – Zappescu

関連する問題