gpt4 book ai didi

android - 添加监听器以在操作栏中切换

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:39 24 4
gpt4 key购买 nike

我已将开关添加到这样的 Activity 的操作栏

切换layout.xml是

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<Switch
android:id="@+id/switch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />

</RelativeLayout>

Menu.xml是

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>

<item
android:id="@+id/myswitch"
android:title=""
android:showAsAction="always"
android:actionLayout="@layout/switch_layout"
/>
</menu>

在java文件中我有这段代码

    public boolean onCreateOptionsMenu(Menu menu)
{

getMenuInflater().inflate(R.menu.Menu, menu);
switch1 = (Switch) findViewById(R.id.switch1);
if(switch1 == null){
Toast.makeText(this, "Null", Toast.LENGTH_SHORT).show();
}
// switch1.setOnCheckedChangeListener(this);
return true;
}

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Toast.makeText(this, "Monitored switch is " + (isChecked ? "on" : "off"),
Toast.LENGTH_SHORT).show();
}

public boolean onOptionsItemSelected(MenuItem item)
{

switch (item.getItemId())
{
case R.id.switch1:

Toast.makeText(this, "here", Toast.LENGTH_SHORT).show();
break;

default:
break;
}
return super.onOptionsItemSelected(item);
}

它在 toast 中显示为 null。我如何添加监听器以在菜单中切换??

最佳答案

错误:

因为你不能直接找到 View ,因为你已经在你的项目中进行了操作布局。

switch1 = (Switch) findViewById(R.id.switch1);

正确:

Switch switch1= (Switch)menu.findItem(R.id.myswitch).getActionView().findViewById(R.id.switch1);

关于android - 添加监听器以在操作栏中切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21398445/

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