【问题标题】:Checking a radiobutton if a specific activity is chosen如果选择了特定活动,则检查单选按钮
【发布时间】:2017-07-20 23:19:26
【问题描述】:

在我的代码中,当一个活动被打开/启动时,我试图检查菜单中的一个单选按钮。我在 onCreate 方法中有一个函数,但我收到一条错误消息,提示“无法取消引用 int”。在这种情况下我该如何解决?或者,是否有一种完全不同的方式可以实现我的目标?

onCreate 方法

    @Override

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_markets);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    R.id.servemenu.setChecked(true);  //this what what I am using to check the radio button

    //home button

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(ActivityMarkets.this, ActivityMenu.class);
            startActivity(intent);
        }
    });

    //Don't know what this is for but I'm not gonna mess with it

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    //Menu I think

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

}

.xml 菜单代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
    <item
        android:id="@+id/servemenu"
        android:title="Markets We Serve" />
    <item
        android:id="@+id/federalmenu"
        android:title="Federal" />
    <item
        android:id="@+id/statelocalmenu"
        android:title="State and Local" />
    <item
        android:id="@+id/commercialmenu"
        android:title="Commercial" />
</group>

【问题讨论】:

    标签: java android radio-button oncreate


    【解决方案1】:

    你不能以你的方式直接引用按钮。

    R.id.servemenu 只是一个整数,用于标识视图中的单选按钮。如果这确实是 RadioButton 的 ID,则必须使用 R.id.servemenu 检索单选按钮。

    你应该这样做,

    RadioButton rb = (RadioButton) findViewById(R.id.servemenu); rb.setChecked(true);

    【讨论】:

    • 谢谢! RadioButton 有导入包吗?代码编译时出现错误:“找不到符号类 RadioButton”
    • 我相信是import android.widget.RadioButton
    • 那行得通 :) 但是,现在我得到了一个 NPE。你知道为什么在 rb 上调用 setChecked() 会被视为空对象引用吗?
    • 如果您在调用setChecked 时遇到 NPE,则表示 RadioButton 为空。是您的 xml 布局中 RadioButton 的 ID servemenu
    • 我该如何解决这个问题? (对不起所有这些问题,我对 java 还很陌生)
    猜你喜欢
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2021-10-21
    • 2012-04-17
    • 1970-01-01
    相关资源
    最近更新 更多