2017-07-20 4 views
0

Dans mon code, lorsqu'une activité est ouverte/démarrée, j'essaie de cocher l'un des boutons radio du menu. J'ai une fonction dans la méthode onCreate, mais je reçois une erreur disant "int ne peut pas être déréférencé." Comment puis-je le réparer dans ce contexte? Ou, y a-t-il une façon complètement différente d'atteindre mon objectif qui fonctionnerait?Vérification d'un radiobutton si une activité spécifique est choisie

méthode 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); 

} 

code menu .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épondre

1

Vous ne pouvez pas référencer directement le bouton de la façon dont vous le faites.

R.id.servemenu est simplement un entier qui identifie le radiobutton dans la vue. Vous devez récupérer le bouton radio en utilisant R.id.servemenu, si c'est bien l'ID de votre RadioButton.

Vous devriez le faire comme ça,

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

+0

Merci! Existe-t-il un package d'importation pour RadioButton? Lorsque le code compile je reçois l'erreur: "ne peut pas trouver la classe de symbole RadioButton" – Mairead

+0

Je crois que c'est "importer android.widget.RadioButton" – astrade

+0

Cela a fonctionné :) Cependant, maintenant je reçois un NPE.Avez-vous aucune idée pourquoi appeler setChecked() sur rb serait considéré comme une référence d'objet nul? – Mairead