如果选择了特定的 activity,则检查单选按钮
Checking a radiobutton if a specific activity is chosen
在我的代码中,当 activity 为 opened/started 时,我试图勾选菜单中的一个单选按钮。我在 onCreate 方法中有一个函数,但我收到一条错误消息 "int cannot be dereferenced." 如何在此上下文中修复它?或者,是否有一种完全不同的方法可以实现我的目标?
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>
您不能按照您的方式直接引用按钮。
R.id.servemenu
只是一个整数,用于标识视图中的单选按钮。您必须使用 R.id.servemenu
检索单选按钮,如果它确实是您的单选按钮的 ID。
你应该这样做,
RadioButton rb = (RadioButton) findViewById(R.id.servemenu);
rb.setChecked(true);
在我的代码中,当 activity 为 opened/started 时,我试图勾选菜单中的一个单选按钮。我在 onCreate 方法中有一个函数,但我收到一条错误消息 "int cannot be dereferenced." 如何在此上下文中修复它?或者,是否有一种完全不同的方法可以实现我的目标?
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>
您不能按照您的方式直接引用按钮。
R.id.servemenu
只是一个整数,用于标识视图中的单选按钮。您必须使用 R.id.servemenu
检索单选按钮,如果它确实是您的单选按钮的 ID。
你应该这样做,
RadioButton rb = (RadioButton) findViewById(R.id.servemenu);
rb.setChecked(true);