2012-01-21 6 views
0

私はこのコード行があります私の場合、r.javaを編集するのは安全ですか?

Button button = (Button) findViewById(R.id.view); 

次のエラーを与える:

id cannot be resolved or is not a field 

というエラーが、私はまだR.java内のIDを必要とするものは何もないので、論理的であるためにIdがありません。これはコードを実行するときに生成されます(onCreate()でボタンを作成するので、Idを取得します)。しかし、問題を解決する前にEclipseを実行させてしまいます。したがって、このコード行をR.javaに追加することは安全です:

public static final class id { 
} 

多分別のsloutionがありますか?

+0

あなたはR.javaを編集することはできません。編集したものはすべて上書きされます。 – Jrom

答えて

0

いいえ.R.javaに追加するものは、次にビルドするときに削除されます。これは自動生成されたファイルです。

1

onCreateにボタンを作成した場合、ボタンはリソースに追加されません。リソースは、APKを構築した瞬間から修正されます。

ボタンを作成した場合は、すでにButtonオブジェクトがあり、リソース内でそれを探す必要はありませんか?

0

R.javaを追加することはできません。しかし、追加したいものがあれば、自分の別のファイル(Rcustom.javaなど)を作成することができます。ファイルをそのまま使用して、どこにでもインポートできます。

+1

ああ、ありがとう。私はこれがうまくいくと思います。 – Mavix

0

findViewById()は、通常setContentView()で設定されたXMLレイアウトを参照する場合、またはLayoutInflaterで拡張された場合に使用されます。あなたはmain.xmlレイアウトでButtonを持っているのであれば、「ビュー」のIDで、あなたのActivityで、次の操作を行います

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button button = (Button) findViewById(R.id.view); 
    button.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Respond to click here 
     } 
    }); 
} 
関連する問題