質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

3回答

2773閲覧

リファレンスをどう使ったら良いのかわからないです。

退会済みユーザー

退会済みユーザー

総合スコア0

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2016/03/20 05:01

Android SDK ポケットリファレンスを見ています。

この本に限らずリファレンス全般に言えるのですが、使い方がよくわかりません。

例えば、441ページの「アプリ起動時にソフトキーボードを表示しないようにする」という項目があるのですが、

構文
android.view.Window

void setSoftInputMode(int mode) ソフトキーボードの状態を設定する

引数
mode ソフトキーボードの状態

定数
●mode
android.view.WindowManager.LayoutParams

SOFT_INPUT_STATE_VISIBLE ソフトキーボードを表示状態にする
SOFT_INPUT_STATE_HIDDEN ソフトキーボードを非表示にする

と書かれており、サンプルがこの後に書かれています。

→サンプル
サンプルプロジェクト:keyboard_Hide
ソース:src/MainActivity.java

//アプリ起動時にソフトキーボードを表示する
getWindow().setSoftInputMode(WindowManager.LayoutParams.
SOFT_INPUT_STATE_VISIBLE);

と、ここまできて、幾つか疑問なのですがサンプルコードのgetWidow().は、どこから出てきたのでしょうか?

void setSoftInputMode(int mode)なのに、サンプルだとvoid が無くなっていますがどうしてでしょうか?

getWindow()の後に「.」で繋げているのはなぜでしょうか?

getWindow()の括弧内が空欄にしてあるのは、どこからわかるのでしょうか?

あと、サンプルのsetSoftInputMode()の括弧内WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE
は、本を見る限りだと、定数に書かれていた
android.view.WindowManager.LayoutParams

SOFT_INPUT_STATE_VISIBLE
から来ているとわかるのですが、android.viewが書かれていないのは、なぜでしょうか?

また、括弧内に、SOFT_INPUT_STATE_VISIBLEと書かずに、この頭に、WindowManager.LayoutParamsが付くのは、なぜでしょうか?

というように、リファレンスをみても、何故そうなるのかわからず、サンプルコードと一致していないように見えるのですが、どうやってリファレンスを理解し、コードを書いていけば良いのでしょうか?

また、Android SDKに限らず、JavaのAPIリファレンスを見ても、???になってしまい、使い方やコードの書き方がわかりません。

理解の仕方や覚え方にコツとかあるのでしょうか?

長文になってしまい申し訳ありませんが、詳しく教えてくださると嬉しいです。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

単にリファレンスといった場合、対象の機能や仕様などを網羅的に解説した「リファレンスマニュアル」のことを指す場合が多い。

IT用語辞典

英語における単語や用語の辞書のようなものです。
英和辞書でappleを引くと「An apple a day keeps the doctor away. 」の用例が出てきましたが、こいつは諺で、文法に忠実に前から翻訳しても「一日一個のリンゴを食べれば医者はいらない.」とは中々なりませんが、これに対して、「eatが入ってないのになんで食べればって翻訳になるの?」とか「doctor awaytって何?」とか言っても余り意味が無いわけでして。

といったわけで通常リファレンスは学びはじめに先頭から末尾まで順に全部読んでいったりはしないと思います。解らない機能や、細かいオプションを忘れた標準関数などがあったときに、それを調べるような使い方になると思います。またある程度言語に精通してきたときに、ボーっと先頭から読んでると「あーこの関数そんな使い方もあったのか」って感じで理解が深まったりします。

投稿2016/03/20 06:42

編集2016/03/20 06:44
hirohiro

総合スコア2068

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

リファレンスを読むために最低限必要な知識

下記の3点を重点的に学習されたらすっきりすると思います。
0. 型(プリミティブ型と参照型の違い含む)
0. クラスとインスタンスの違い
0. メソッドの引数の型と戻り値の型

説明

MainActivityクラス内でgetWindow()を呼び出していますが、これはActivityクラスが持つメソッドで、リファレンスには下記のように書いてありますね。

Java

1// MainActivity(スーパークラスがActivity)のメソッド 2public Window getWindow ()

これは、Window型を返す引数なしのpublicなメソッドというという意味です。

getWidow()メソッドはWindow型(クラス)を返すことがわかりました。
ですので、下記のWindowクラスのメソッドを利用することができます。

Java

1//android.view.Windowクラスのメソッド 2public void setSoftInputMode(int mode) ソフトキーボードの状態を設定する

メソッドの意味は、void型を返す(=つまり何も返さない)引数がint型のpublicメソッドということです。またWindowManager.LayoutParams.
SOFT_INPUT_STATE_VISIBLEはint型ですので、下記のようにsetSoftInputメソッドの引数として渡すことができます。

Java

1getWindow().setSoftInput(WindowManager.LayoutParams. 2SOFT_INPUT_STATE_VISIBLE); 3 4// 下記も同様の処理 5int mode = WindowManager.LayoutParams. 6SOFT_INPUT_STATE_VISIBLE; 7getWindow().setSoftInput(mode); 8 9// 下記とも同様 10int mode = WindowManager.LayoutParams. 11SOFT_INPUT_STATE_VISIBLE; 12Window window = getWindow(); 13widow.setSoftInput(mode);

しかし、これだと冗長なので、通常は一行にまとめます。

投稿2016/03/20 07:18

編集2016/03/20 07:21
Odacchi

総合スコア907

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

それは出版社に問い合わせる内容で、こういうところで聞く内容でもない気がしますが、

リファレンスはプログラミングの経験がある方を前提として書いてあることが往々にしてあります。つまり、読む人を選ぶということですね。

そのため、まったく触ったことない初心者やソフト作成をしたことがない方は、
これがどういうことなのかの勘所みたいなものがないと思われます。

あと残念なことにその時々の仕様情報でかかれていることもあるので、
手に取った版によっては、情報が古い場合もよくあります。

逆に知っていると、とっかかり(キーワード)をつかみやすいので
そこから発展して調べることや そもそも組み方を知っていれば検証コードで確認するなど
把握がしやすくなります。

もし全くの経験がなく 手に取ってしまったのであれば
まずは入門レベルでよいので、一通りの学習を終えてから1つ何か作成してみてください。

投稿2016/03/20 06:15

lib

総合スコア446

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問