这是一个普遍的问题。我无法在Google上得到任何答案,所以请问stackoverflow。
某些Android应用程序在活动顶部(操作栏)有推车按钮。
例如,我附上了亚马逊android应用程序的图像。
所有产品都将通过webview
列出,当用户在亚马逊上下订单时,订单购物车会更新,其中0到1的数字位于操作栏中。
这个更新发生在android从webview
到最常用的一些小部件中。
任何人都可以让我们知道如何实现这一目标或者整个活动本身是webview
吗?我想知道他们使用了哪些小部件,以及他们如何在活动中更新购物车。
任何指向示例的指针都会非常有用。
附件是亚马逊android应用程序屏幕的图像。
感谢。
答案 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)
这可能对您有所帮助,这可能不是该问题的正确答案。
我认为您可以使用WebViewClient
和onPageFinished
来完成此操作。观察URL的特定模式。如果模式匹配,您可以执行您需要的操作。
还有一种方法,请考虑一下,
让应用向服务器发送请求以更新购物车。该应用程序将经常向服务器发送请求以检查购物车更新。
:)
答案 3 :(得分:0)
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;
}
并在需要更新时更新