0

コードに問題があり、どこにあるのかわかりません。何かを見落としているに違いない。説明します。私は非常にシンプルなインターフェースを持っています:

public interface IMyEntity {

    public String GetName();


}

そして、私は私のクラスを持っています。IMyEntity インターフェイスの配列を使用する SpinAdapter を作成したいので、インターフェイスを実装しているすべての pojo で spinadapter を再利用できます。

public class SpinAdapter<IMyEntity> extends ArrayAdapter<IMyEntity> {


private Context context;
private IMyEntity[] values;

public SpinAdapter(Context context, int textViewResourceId, IMyEntity[] objects) {
    super(context, textViewResourceId, objects);
    this.context = context;
    this.values = objects;
}


public int getCount(){
    return values.length;
}

public IMyEntity getItem(int position){
    return values[position];
}

public long getItemId(int position){
    return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
    TextView label = new TextView(context);
    label.setTextColor(Color.BLACK);
    label.setText(this.values[position].GetName());
    return label;
}


@Override
public View getDropDownView(int position, View convertView,
        ViewGroup parent) {
    TextView label = new TextView(context);
    label.setTextColor(Color.BLACK);
    label.setText(values[position].GetName());

    return label;
}

}

私が抱えている問題はこの行にあります:

label.setText(values[position].GetName());

ここで GetName メソッドにアクセスする必要がありますが、存在しないというエラーが表示されます。インターフェイスの GetName メソッドを使用できません。

ここで何が間違っていますか?私の質問が明確であることを願っています。

ありがとう、

ビョルン

4

4 に答える 4

0

私の推測では、問題はコンストラクターがないことです。それを追加してみてください。

于 2013-02-28T13:44:15.433 に答える
0

インターフェイスまたは抽象クラスはインスタンス化できません。インターフェイスを使用するには、インターフェイスを実装するクラスが必要です。

public class MyEntityImpl implements IMyEntity {
     public String GetName() {
         return "" ;
     }
}
于 2013-02-28T13:33:06.230 に答える
0

インターフェイスを定義しましたが、それを実装するクラスがありません。そのインターフェイスを実装する型が必要であり、その型の配列を作成すると機能します。

于 2013-02-28T13:34:21.793 に答える
0

わかりました、見つけました。クラス全体を削除して再起動しました。今では動作します。

今、私のクラスは次のように始まります:

public class IEntitySpinAdapter extends ArrayAdapter<IMyEntity>

これは機能します。

これはしません:

public class SpinAdapter<IMyEntity> extends ArrayAdapter<IMyEntity>

手伝ってくれたみんな、どうもありがとう!!!!

于 2013-02-28T14:14:41.170 に答える