2

だから私は私が動作させようとしているいくつかのコードを見つけました。私はAndroid/Exclipse / Javaを初めて使用しますが、それでも全体に頭を悩ませようとしています。しかし、私は自分自身を盲目的に主演しています。

私がこれを持っていると言う:

private class RSSListAdapter extends ArrayAdapter<MyRSSItem> {
  private List<MyRSSItem> objects = null;        
  public RSSListAdapter(Context context, int viewid, List<MyRSSItem> objects) {
    super(context, viewid, objects);                       
    this.objects = objects;            
  }
}

そして他の場所でこれ:

myRssAdapter = new RSSListAdapter(thisActivityContext, newsListView, myItemsDataArrayList);

ここで、myItemsDataArrayList次のように宣言されます。

ArrayList<MyRSSItem> myItemsDataArrayList = new ArrayList<MyRSSItem>();

このエラーが発生します:

コンストラクターNews.RSSListAdaptor(Context、ListView、ArrayList)は未定義です

もちろん私はグーグルを試しましたが、まあ、運がありません。

4

1 に答える 1

5

コンストラクターの定義は次のとおりです。

public RSSListAdapter(Context context, int viewid, List<MyRSSItem> objects) {

これはContext、、、、intおよびList <MyRSSItem>

ただし、次の引数を使用してコンストラクターを呼び出します。

new RSSListAdapter(thisActivityContext, newsListView, myItemsDataArrayList);

2番目の引数は、newsListViewではなく、intですListView。それらは同じタイプではないため、コンパイル時エラーが発生します。

に変更すると、スーパークラスコンストラクターが必要とするandroid.R.id.text1ように、有効なTextView IDであるため、機能するはずです。

そして、それを作成した後、間違いなくListViewあなたのアダプタを設定することを忘れないでください。RSSListAdapter

詳細については、このチュートリアルが非常に役立ちます。

于 2013-02-19T01:48:29.787 に答える