0

記事のリストがあり、10 記事ごとに広告が表示されます。問題は、広告がリストに追加されるのではなく、実際に記事の代わりになっていることです。

何が起こっているかの例:

- ad //taking the place of article 1
- article 2
- article 3
- article 4
...
- article 9
- article 10
- ad //taking the place of article 11
- article 12

X記事ごとに広告を表示する方法は、次のArrayAdapterとおりです。

@Override
//determines which view type I want to use
public int getItemViewType(int position) {
    this.currentLayout = position % 11 == 0 ? 1 : 0;
    return this.currentLayout;
}

@Override
//says there are 2 different view types I want to use
public int getViewTypeCount() {
    return 2;
}

それで - 私はそれが起こっているのを見たので、それは理にかなっていると思いますが、どうすれば広告を表示させ、次の記事を表示させることができますか?

以前の試み:

私は以前、記事自体のすぐ下の XML に記事を持っていて、# に応じてオン/オフを切り替えただけでしたが、それは過剰な XML であると言われました (とにかく、いくつかの問題がありました)。

また、広告が表示されているときはいつでも記事を次の項目として追加しようとしましたが、私がそのような初心者でなければ、これが機能しないことにすぐに気付きました (記事の複製が作成されます-LOT):

public int getItemViewType(int position) {
    //...
    if(this.currentLayout == 1) this.insert(this.getItem(position), position);
    //...
4

2 に答える 2

0

広告を表示して次の記事を表示するにはどうすればよいですか?

アダプターではgetCount()、広告を考慮してオーバーライドし、間違ったデータを読み込まないように調整positionする必要があります。getView()

あなたの例では:

  • getCount()あなたの例では、12件の記事+ 2件の広告= 14行を返す必要があります。
  • getView()positionを呼び出すときに調整する必要がありますgetItem()。おそらく: getItem(position - (position / 11) + 1)(しかし、正直に言って、私の数学はかなりずれている可能性があるため、疲れています。)
于 2013-01-16T05:04:48.990 に答える
0

チェックアウトしてくださいMergeAdapter。アダプターとビューを単一の統合アダプターにブレンドし、位置を修正することができます。ArrayAdapterセクションを作成し、セクションの見出しのように広告を配置するには、おそらく複数のインスタンスを作成する必要があります。

于 2013-01-16T06:00:51.553 に答える