Bescottee苦しいときは伸びてるとき、楽なときは伸びていないとき

2 未実装メソッドの自動補完時の引数名(arg0, arg1…)を正しいものにする方法


自動補完時の問題点

eclipseでインタフェースをimplementsしたり、クラスをnewするときに未実装メソッドの自動補完機能があります。これはそのクラスで必ず実装しなければならないメソッド(C++でいうpure virtual)を自動的に追加してくれる機能です。この機能は大変便利なのですが、androidの場合、以下のようにonItemClickメソッドの引数の名前がarg0, arg1などと使いづらい名前になってしまう問題があります。

1
2
3
4
5
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バージョンごとにフォルダ分けされてダウンロードされます。

1
\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() のようにクラスを追加すると、実装しなければならないメソッドが補完されて、正しい引数名になります。

1
2
3
4
5
6
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の著者さん、いつもありがとうございます。

2件のコメント »

  1. 未実装メソッドの自動補完時の引数名(arg0, arg1&#8230;)を正しいものにする方法 http://t.co/EjCohbORzo

  2. ザキ() より:

    RT @adakoda: 未実装メソッドの自動補完時の引数名(arg0, arg1&#8230;)を正しいものにする方法 http://t.co/EjCohbORzo

このコメント欄の RSS フィード トラックバック URL

コメントをどうぞ