wrapとは、包むという意味である。
保存のために、ビニールで食料品を包む行為を想像すれば良い。
食料品をビニールで包んだ場合、それを触ると、食料品を直接触るのではなく、外側のビニールを触ったことになる。これにより、食料品は傷まない。そして、食料品を持ち運ぶことができる。ボールとして取扱えば、キャッチボールすらできてしまう。そんないろいろなメリットがある。
食べることができないというデメリットはあるが、ここでは考えない。
ラップをすることにより取扱いが容易になり、安全性が向上するのである。
ラップやラッパーという用語があいまいになったら、以上のことを想像すれば良い。
さて、文字列データ群と、その文字列の属性データ群とが、存在するとしよう。
この2個の各々のデータを各々の格納先から持ってくるという手法は、昔から行われてきた手法である。
そうするよりも、文字列データとその属性データとを一個のクラスの中に入れてしまって、メソッドを使い操作すれば、取扱いが容易になる。
クラスに格納するという手間、つまりラッピングするという手間はかかるが、その後の取り扱いは安全で容易になるのである。
この機能を担うクラスをwrapperという。
なお、音楽は、rap musicであって、それをやってる人をrapperという。こっちを想像して踊りだしたりするのは良くない。
2011年5月25日水曜日
2011年5月12日木曜日
No grammar constraints (DTD or XML schema) detected for the document
No grammar constraints (DTD or XML schema) detected for the document
この警告に対する適切な解決方法を見つけましたので報告します。
この警告に対する適切な解決方法を見つけましたので報告します。
- 上記警告が発生しているXMLファイルを開きます。
- Edit>Select All>Copyします。つまり、XMLデータの全てをClipboardに入れます。
- カーソルを第一行目の左端に持っていきます。
- エンターキーを適当な回数押します。
- すると、おかしなことに、警告のマークも下にズレていくことが観察されます。
- カーソルを第一行目の左端に持っていきます。
- Edit>Pasteします。
- このPasteコマンドで張り付けたデータよりも下にあるデータを全て削除します。
- すると、何故か警告マークも一緒に消えてしまいます。
- そして警告自体も消えます。
以上のことから、この警告はEclipseのバグだろうと思います。
About this warning, many other sites have explained to operate Validation command. But I feel that this method is not appropriate. I think I found a appropriate solution as follow:.
- Open the file that issued the warning as such above.
- Operate Edit>Select All>Copy. In other words, copy all XML data into the Clipboard.
- Move the cursor to the left of the first line.
- Press the Enter key a few times.
- Then, oddly enough, we observe that the warning mark is going down.
- Move the cursor to the left of the first line.
- Operate Edit>Paste
- Delete all the data that is at lower position than the data that was pasted
- Then, somehow, the warning mark is lost.
- And then a warning itself will disappear also.
In conclusion, I think Eclipse bug caused this warning.
2011年5月6日金曜日
android:idについて
android:idについて
XMLに書かれているandroid:id、例えば、
android:id="@+id/gridview"
に関して
android developersのDeclaring Layoutの記事は分かりにくい。そこで、私なりにまとめてみる。
Viewは階層構造をしています。このため、この階層構造は「木、ツリー」(tree)とも表現されたりします。
個々のViewは、個々にIDを持っています。これは個々のViewを識別するためです。
しかし、プログラマは、全てのViewにIDを与えるコードを書く必要はありません。プログラム内で識別を必要とするViewに対してだけ、意図的にIDを付与すれば良いのです。例えば、多くの場合、LinearLayout等のViewGroupにIDを付与する必要性は無いでしょう。
IDはXMLファイル内では通常は文字列として書きます。例えば、次のように。
android:id="@+id/gridview"
このIDは、コンパイルされた場合、整数として参照されます。この整数値の所在は、(コンパイルされた後で)R.javaファイル内に記されています。このファイルの所在は次のとおりです。
/(プロジェクトのルートフォルダー)/gen/(フォルダー)/R.java
実際には、プログラマーは、R.javaを直接操作したり、見たりはしません。無視しておけば良いです。
XMLにおいてIDの表記の仕方は、既に示したように、次のようになります。
android:id="@+id/my_button"
文字列内のデータが@で始まっている場合、その(@で始まる)文字列をリソースのIDとして解釈します。
+記号がある場合、それは、R.javaファイルに、当該データを「作成する」ことを指示します。
既に作成されてあるデータを参照する場合には、次のように、+記号を付けずに書きます。
android:id="@id/my_button"
例えば、次のような書き方もあります。
android:id="@android:id/empty"
これは、"android"というパッケージネームスペースを使って、android.RリソースクラスからIDを参照します。これはローカルにある、resフォルダーのリソースを参照するものではありません。
XMLに書かれているandroid:id、例えば、
android:id="@+id/gridview"
に関して
android developersのDeclaring Layoutの記事は分かりにくい。そこで、私なりにまとめてみる。
Viewは階層構造をしています。このため、この階層構造は「木、ツリー」(tree)とも表現されたりします。
個々のViewは、個々にIDを持っています。これは個々のViewを識別するためです。
しかし、プログラマは、全てのViewにIDを与えるコードを書く必要はありません。プログラム内で識別を必要とするViewに対してだけ、意図的にIDを付与すれば良いのです。例えば、多くの場合、LinearLayout等のViewGroupにIDを付与する必要性は無いでしょう。
IDはXMLファイル内では通常は文字列として書きます。例えば、次のように。
android:id="@+id/gridview"
このIDは、コンパイルされた場合、整数として参照されます。この整数値の所在は、(コンパイルされた後で)R.javaファイル内に記されています。このファイルの所在は次のとおりです。
/(プロジェクトのルートフォルダー)/gen/(フォルダー)/R.java
実際には、プログラマーは、R.javaを直接操作したり、見たりはしません。無視しておけば良いです。
XMLにおいてIDの表記の仕方は、既に示したように、次のようになります。
android:id="@+id/my_button"
文字列内のデータが@で始まっている場合、その(@で始まる)文字列をリソースのIDとして解釈します。
+記号がある場合、それは、R.javaファイルに、当該データを「作成する」ことを指示します。
既に作成されてあるデータを参照する場合には、次のように、+記号を付けずに書きます。
android:id="@id/my_button"
例えば、次のような書き方もあります。
android:id="@android:id/empty"
これは、"android"というパッケージネームスペースを使って、android.RリソースクラスからIDを参照します。これはローカルにある、resフォルダーのリソースを参照するものではありません。
登録:
投稿 (Atom)