gpt4 book ai didi

android - 如何访问菜单中 actionLayout 内的 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:16 25 4
gpt4 key购买 nike

我有三个菜单项,其中包含相同的 app:actionLayout 它有一个 TextView ,我如何通过代码单独访问 TextView 并为所有三个 TextView 设置不同的文本。

activity_main_drawer.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<group android:checkableBehavior="single">
<item
android:id="@+id/item_tracks"
app:actionLayout="@layout/menu_text_layout"
android:icon="@drawable/ic_play_arrow"
android:title="Tracks"/>
<item
android:id="@+id/item_repeat"
app:actionLayout="@layout/menu_text_layout"
android:icon="@drawable/ic_play_arrow"
android:title="Repeat"/>
<item
android:id="@+id/item_timer"
app:actionLayout="@layout/menu_text_layout"
android:icon="@drawable/ic_play_arrow"
android:title="Timer"/>
</group>

<item android:title="More">
<menu>
<item
android:id="@+id/item_animation"
app:showAsAction="always"
android:icon="@drawable/ic_play_arrow"
app:actionLayout="@layout/switch_layout"
android:title="Animation"/>
<item
android:id="@+id/item_background"
android:icon="@drawable/ic_play_arrow"
android:title="Background Music"/>
</menu>
</item>

</menu>

menu_text_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tool="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tool:background="@android:color/white"
android:gravity="center_vertical">

<TextView
android:id="@+id/switchForActionBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:maxLength="10"
android:ellipsize="marquee"
android:fontFamily="sans-serif"
android:textAppearance="?android:attr/textAppearanceSmall"
android:background="@color/Color_600"
android:textColor="@android:color/white"
android:padding="2.5dp"
android:text="Change Text"/>

</LinearLayout>

最佳答案

OnCreateOptionsMenu 中看起来像这样:

getMenuInflater().inflate(R.menu.activity_main_drawer, menu);

LinearLayout tracks = (LinearLayout) menu.findItem(R.id.item_tracks).getActionView();
LinearLayout repeat = (LinearLayout) menu.findItem(R.id.item_repeat).getActionView();
LinearLayout timer = (LinearLayout) menu.findItem(R.id.item_timer).getActionView();

TextView tvTracks = (TextView) tracks.findViewById(R.id.switchForActionBar);
TextView tvRepeat = (TextView) repeat.findViewById(R.id.switchForActionBar);
TextView tvTimer = (TextView) timer.findViewById(R.id.switchForActionBar);

tvTracks.setText("foo");
tvRepeat.setText("bar");
tvTimer.setText("baz");
return true;

我正在使用 LinearLayout,因为它是 menu_text_layout.xml 中的第一个元素

关于android - 如何访问菜单中 actionLayout 内的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34378670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com