मैं कार्ट आइटम में गिनती दिखाने के लिए मेनू अप बार में कस्टम लेआउट बढ़ा रहा हूं और मैं आइटम क्लिक के साथ प्राप्त करता हूं। यहां मेनू में गिनती दिखाना या सेट करना कैसे संभव है? मैं थोड़ा भ्रमित हूँ। यदि यह संभव है तो कोई विचार कैसे?

मैंने यह कोशिश की है

MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.home_screen, menu);
final Menu m = menu;
final MenuItem item = menu.findItem(R.id.nav_cart);

item.getActionView().setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(HomeScreen.this, "hello", Toast.LENGTH_SHORT).show();
    }
});

कस्टम लेआउट एक्सएमएल। तो यहाँ मैं बैज काउंट सेट करना चाहता हूँ, लेकिन कैसे?

फ़ाइल

<RelativeLayout
    android:id="@+id/cart"
    android:layout_width="wrap_content"
    android:layout_marginTop="15dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/cart_bag"
        android:layout_width="25dp"
        android:layout_height="25dp"
        app:srcCompat="@drawable/bag" />

    <com.nex3z.notificationbadge.NotificationBadge
        android:id="@+id/badge"
        android:layout_width="20dp"
        android:layout_alignParentTop="true"
        android:layout_alignTop="@id/cart_bag"
        android:layout_height="20dp"
        app:nbBackground="@drawable/badge_bg_with_shadow"
        android:layout_marginLeft="15dp"
        app:nbMaxTextLength="2"/>

</RelativeLayout>

मेनू आइटम

android:id="@+id/nav_cart"
android:orderInCategory="15"
android:title="@string/action_settings"
app:actionLayout="@layout/custom_layout_cart"
app:showAsAction="always"
0
MustafaShaikh 11 जून 2019, 09:02

2 जवाब

सबसे बढ़िया उत्तर

प्रोग्रामिक रूप से कस्टम लेआउट जोड़ने का प्रयास करें..इस तरह

    final MenuItem item = menu.findItem(R.id.nav_cart);
    MenuItemCompat.setActionView(item, R.id.custom_layout_cart);
    actionView = MenuItemCompat.getActionView(item);
    ImageView btn = (ImageView) actionView.findViewById(R.id.cart_bag);
    NotificationBadge count = (TextView) actionView.findViewById(R.id.badge);
    btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(HomeScreen.this, "hello", Toast.LENGTH_SHORT).show();
    }
});
1
Prachi Singh 11 जून 2019, 11:11

अपने कस्टम-बैज लेआउट से टेक्स्टव्यू में गिनती मान सेट करने का प्रयास करें।

val tvCartCount = actionView.findViewById(R.id.your_cart_count_id) as TextView

tvCartCount.text = "Your Cart Value"

बेहतर समझ के लिए आप इस समाधान का संदर्भ ले सकते हैं।

1
Dhara Vamja 11 जून 2019, 12:08