自動補完時の問題点
eclipseでインタフェースをimplementsしたり、クラスをnewするときに未実装メソッドの自動補完機能があります。これはそのクラスで必ず実装しなければならないメソッド(C++でいうpure virtual)を自動的に追加してくれる機能です。この機能は大変便利なのですが、androidの場合、以下のようにonItemClickメソッドの引数の名前がarg0, arg1などと使いづらい名前になってしまう問題があります。
gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub }
対応方法
Javadoc のメソッドの説明時に記載されている引数名とするためには、jarファイルに対応したソースコードが参照できる環境になっている必要があります。
Androidはいつからのバージョンからかソースコードが 以下のようにSDK Manager から取得できるようになっています。
SDK Manager でソースコードを取得すると、以下の場所にソースがAndroidのSDKバージョンごとにフォルダ分けされてダウンロードされます。
\android-sdk-windows\sources
このソースコードをEclipse の Java Build Path で設定されている Android.jar に対して、該当するソースコードを設定します。
設定前の android.jar のJava Build Path
上記がまだ設定されていない状態で、ここに対して、写真の例であれば、Android 4.1.2 のandroid.jar に対する設定のため、SDK version 16の \android-sdk-windows\sources\android-16 のフォルダを設定します。以下が設定が完了した状態です。
設定後の android.jar のJava Build Path
設定後の状態
設定が完了すれば、eclipse 上でnew OnItemClickListener() のようにクラスを追加すると、実装しなければならないメソッドが補完されて、正しい引数名になります。
gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void aonItemClick(final AdapterView> parent, final View view, final int position, final long id) { // TODO Auto-generated method stub }
いつも参考にさせて頂いているでもネタ帳 A.B.C:プロジェクト作成時にSupport Libraryのソース関連付けを行う方法ということで support library の場合の紹介がありました。こちらも参考にしてみてください。
ネタ帳 A.B.Cの著者さん、いつもありがとうございます。
未実装メソッドの自動補完時の引数名(arg0, arg1…)を正しいものにする方法 http://t.co/EjCohbORzo
RT @adakoda: 未実装メソッドの自動補完時の引数名(arg0, arg1…)を正しいものにする方法 http://t.co/EjCohbORzo