2011-12-03 19 views
1

次のコードは私にエラーなぜこのコードは私にエラーを与えていますか?

public class SuperImage3Activity extends Activity 
{ 

    ImageView image1, image2; 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     image1 = (ImageView)findViewById(R.drawable.sourceimage1); // error here 

     image2 = (ImageView)findViewById(R.drawable.sourceimage2); // error here 

    } 

を与えた私は確かに描画可能という名前のディレクトリを作成したディレクトリにsourceimage1.jpgとsourceimage2.jpgを置きます。

エクリプスによって与えられる推薦は、ADT 14のよう

」であるライブラリ・オブジェクトに定義されている場合、(例えばドラえもんのような)リソースフィールドは、もはや定数ではない。 これは、再コンパイルせずにライブラリプロジェクトがresuableする必要がありますそれら。この

1つの結果は、あなたは、もはやswitch文でdirectinlyフィールドを使用できないということです。 あなたはのif-elseチェーンを使用しなければならない代わりに 「

答えて

2
R.id.imageview1 
R.id.imageview2 

あなたはあなたのウィジェットやビュー、または他のコントロールをリンクしたり、コントロールを動的に作成したりできるres/layoutのXmlレイアウトを作成しました。この

ImageView imageView1=new ImageView(this); 
imageView1.setImageResource(R.drawable.sourceimage1); 
+3

findViewyIdはXMLレイアウトのコントロールIDを意味します。そのため、iamgeリソースではなくコントロールのIDを指定する必要があります。ありがとう – SALMAN

+2

http://www.higherpass.com/Android/Tutorials/Working-With-Images-In-Android/この例を見ることができます – SALMAN

+2

あなた自身の答えにコメントするのではなく、答えの本文を修正することを検討してください。 –

0

findViewByIdのように、すでにあなたは(通常は活性)のメソッドを呼び出しているビューの一部あるビューを見つけるために使用されます。

基本的に行うの方法は次のとおりです。(順番に)

  1. まず、あなたはすべてのコンポーネントと、所望の位置を示していますレイアウト(XMLレイアウトファイルで、またはプログラム)を設計。
  2. あなたはあなたがあなたの活動や既存のコンポーネントの子として、このレイアウトを設定
  3. (あなたのレイアウトをプログラム的に行われている場合、あなたのXMLでandroid:id="@+id/your_id_here"、またはsetId(XX)を使用してのいずれか)あなたが興味を持っているリソースへのIDを割り当てます
  4. は今、あなたは2

findViewByIdで定義された識別子を使用してfindViewByIdを使用することができます(通常はsetContentViewとすること)をパラメータとして、リソース自体(あなたの描画可能なオブジェクト)を使用しないです。

関連する問題