2016-05-11 3 views
0

を生成するアルゴリズムは何ですか? のRのパラメータは、常にと同じですか?どのようにアンドロイドが生成するR

SharedPreferences preference = getPreference(); 
Object object = preference.getString(R.id.xxx); 

R.id.xxxの値が変更されるかどうかを知りたいと思います。

-----------------------質問をより明確にするようにしてください---------------- -

v1 = R.id.listview;

次に、プロジェクトをクリーンアップします。

v2 = R.id.listview;

は常にv1 = v2ですか?

私はこのようにテストしました。 R.id.xxxを印刷して、プロジェクトをクリーンアップし、R.id.xxxを再度印刷します。 結果は同じです。

しかし、私は別のIDEでR.id.xxxの値が変わることを知りません(AAPTのバージョンはすべて同じかどうか)。

+2

** R **は自動生成されたファイルです。決してそれに触れないでください! –

答えて

0

プロジェクトをビルドするときにRが生成されます。クラスは自動的に生成され、編集しないでください。

This answerは、より詳細な情報を持っている:

R.javaは、AndroidにおけるJavaクラスでの使用のために、動的に(レイアウトにアンドロイドウィジェットの文字列から)すべての資産を識別するために、ビルドプロセス中に作成し、動的に生成されたクラスです。アプリ。

This blog:

The docs.

+0

その答えには私が知りたいことは含まれていないようです。質問を編集します。 – user2545386

+0

@ user2545386回答が投稿された後、回答を無効にするので、質問を編集して意図を変更しないでください。あなたは新しい質問を投稿し、これを編集してロールバックすることをお勧めします。 edit.Butのため申し訳ありませんが –

+0

私の質問は、値が変化したりしませクリーン後またはプロジェクトを再構築します常にある?しかし、答えはアンドロイド属のRで、私はなぜべきである私が質問 – user2545386

1

アンドロイドR.javaは、RES /ディレクトリのすべてのリソースのリソースIDが含まれているAAPT(アンドロイド資産のパッケージング・ツール)によって自動生成されたファイルです。

:あなたはR.jarファイルを削除すると、Androidが自動的に作成されます。

編集:R.javaの詳細については

、親切に私はanswer.Butは運悪く、それは英語ではありません見つけhere

+0

私の質問を編集します。私の質問は今より明確だと思います。私の答えは今では十分ではありません。 – user2545386

+0

あなたの優しい答えをありがとう。答えとしてマーク – user2545386

+0

。それがあなたを助けるならば。 –

1

を参照してください。 今質問に自分自身で答えようとします。エラーがある場合は教えてください。


SDKディレクトリ内のres /値/ public.xml内のファイルがあります。

値は常にpublic.xmlが最初に読み取られます。ファイルを削除しなかった場合

は、だから今は、値は常に同じ、知っています。

しかし、あなたはそれを削除し、私は自分のアプリケーションには若干の誤差がありますので、私は実験をしなかった恐れhappen.I'mどうなるかわかりません。


誰もが英語でRを生成する方法アンドロイドの記事のリンクを持っている場合は、感謝のコメント、または新しい答えを作成します。

+0

IDを持つレイアウトに新しいフィールドを作成したり、それを削除した場合はどうなりますか? – AxelH

+0

私はIDを追加しようとしました、値は同じです。そして、私は記事を読んで、それは互換性の問題を避けるために、値がまずpublic.xmlから読み取られると言いました。お役立ち情報 – user2545386

+0

は、優先フラグメントのために、私はすべての好みのIDを取得するには、いくつかの醜いのcontrolerを作成する必要がありました、デフォルト値、...これは完璧ではなかった、世代にRからのすべてのデータを回復する、私は生成された用途を持っていることができると思いますおそらく私は小さなリスクを伴います。 – AxelH

関連する問題