Android应用程序中的购物车按钮

时间:2012-08-14 10:39:35

标签: android

这是一个普遍的问题。我无法在Google上得到任何答案,所以请问stackoverflow。

某些Android应用程序在活动顶部(操作栏)有推车按钮。 例如,我附上了亚马逊android应用程序的图像。 所有产品都将通过webview列出,当用户在亚马逊上下订单时,订单购物车会更新,其中0到1的数字位于操作栏中。 这个更新发生在android从webview到最常用的一些小部件中。

任何人都可以让我们知道如何实现这一目标或者整个活动本身是webview吗?我想知道他们使用了哪些小部件,以及他们如何在活动中更新购物车。

任何指向示例的指针都会非常有用。

附件是亚马逊android应用程序屏幕的图像。

Image of the amazon android application

感谢。

4 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

他们使用action bar,操作栏是顶部栏上显示的窗口羽毛,   有关详细信息和示例,您可以查看Google I / O应用here

的源代码

答案 2 :(得分:0)

这可能对您有所帮助,这可能不是该问题的正确答案。

我认为您可以使用WebViewClientonPageFinished来完成此操作。观察URL的特定模式。如果模式匹配,您可以执行您需要的操作。

还有一种方法,请考虑一下,

让应用向服务器发送请求以更新购物车。该应用程序将经常向服务器发送请求以检查购物车更新。

:)

答案 3 :(得分: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中,您可以获取对textview的引用,如下所示:

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;
}

并在需要更新时更新