1

これは一般的な質問です。Googleでこれに対する回答が得られなかったので、stackoverflowで質問してください。

一部の Android アプリには、アクティビティ (アクション バー) の上部にカート ボタンがあります。たとえば、Amazon Android アプリケーションの画像を添付しました。すべての製品が一覧表示されwebview、ユーザーが amazon で注文すると、アクション バーにある 0 から 1 までの番号で注文カートが更新されます。この更新は、webviewおそらくアンドロイドで使用されているウィジェットからアンドロイドで行われています。

これがどのように達成されたのか、または全体の活動自体がどうなったのか、誰か教えていただけませんかwebview? 彼らが使用しているウィジェットと、アクティビティでカートをどのように更新しているかを知りたいです。

例へのポインタは本当に役に立ちます。

添付はamazon androidアプリ画面の画像です。

amazon android アプリケーションのイメージ

ありがとう。

4

4 に答える 4

1

標準のアクション バー アイテムを実行時に更新できるかどうかはわかりません。

ただし、アクション バーはカスタム レイアウトを追加する機能をサポートしています。この場合、アイテムがカートに追加されたときにリスナーを設定することに問題は見られず、そのカスタム レイアウトを更新することで UI に反映されます。

更新:
カスタム レイアウトを追加するには、コードから:

ActionBar bar = getActionBar();
bar.setCustomView(R.layout.custom_action_bar);

またはスタイルから:

<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
  .....
  <item name="android:customNavigationLayout">@layout/custom_action_bar</item>
</style>

これでR.layout.custom_action_bar、カート内のアイテムの数を表す上記の数字が付いたボタンが表示されます。明らかに、その番号はTextView、アイテムがカートに追加されるたびに増加する である必要があります。

このためには、アクティビティにリスナーが必要です。これにより、その TextView が更新されます。次に例を示します。

@Override
public void onItemAdded(){
   cart.setText(CURRENT_NUMBER_OF_ITEMS_IN_CART);
}
于 2012-08-14T11:14:42.387 に答える
0

res/menu/menuitem.xml 内で、次のオプションを定義できます。

android:actionLayout="@layout/yourcustomlayout"

あなたのカスタムレイアウトがどこにあるのか

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="3dip"
    android:src="@drawable/cart" />

<TextView
    android:visibility="invisible"
    android:id="@+id/tv"
    style="@style/DefaultTextStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center|top"
    android:background="@drawable/mybackground" />

onCreateOptionsMenu 内では、次のようにテキストビューへの参照を取得できます。

private TextView cartTV;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.virtual_betting, menu);
    MenuItem item = menu.getItem(0);
    cartTV = (TextView) item.getActionView().findViewById(R.id.pallino);

    return true;
}

更新が必要なときに更新する

于 2013-06-14T15:41:23.233 に答える
0

アクション バーを使用します。アクション バーは、トップ バーに表示されるウィンドウ フェザーです。詳細と例については、Google I/O アプリのソース コードを参照してください

于 2012-08-14T10:49:55.773 に答える
0

これはあなたを助けるかもしれませんが、これは質問に対する適切な答えではないかもしれません.

WebViewClientと を使ってできると思いますonPageFinished。URL の特定のパターンに注意してください。パターンが一致する場合は、必要なアクションを実行できます。

もう一つの方法、これも考えて、

アプリがリクエストをサーバーに送信して、カートを更新できるようにします。アプリは頻繁にサーバーにリクエストを送信して、カートの更新を確認します。

:)

于 2012-08-14T11:20:04.180 に答える