2016-12-04 35 views
-1

我正在構建原生Android應用程序。 我有一個菜單,我想顯示和隱藏項目,取決於登錄的人(孩子或父母)。Android,顯示和隱藏菜單項問題

我在共享首選項中保存此人的登錄信息。這工作正常。我收到登錄的人的信息。

問題是菜單,它只在某個時間有效。

我是初學者,任何幫助將不勝感激。

public class BaseActivity extends AppCompatActivity { 
String auth_user, toolbox_access, results_access; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    SharedPreferences preferences = getSharedPreferences("PREF", MODE_PRIVATE); 
    auth_user = (preferences.getString("auth_settings", "")); 
    toolbox_access = (preferences.getString("toolbox_access", "")); 
    results_access = (preferences.getString("results_access", "")); 
} 

public void Toolbar(){ 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    Drawable drawable = ContextCompat.getDrawable(getApplicationContext(),R.drawable.ic_reorder_black_24dp); 
    toolbar.setOverflowIcon(drawable); 
    //Toolbar title 
    TextView toolbar_title = (TextView)findViewById(R.id.toolbar_title); 
    toolbar_title.setText(getString(R.string.action_exercise)); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    if(auth_user == "Parent"){ 
      MenuItem item = menu.findItem(R.id.action_card_list); 
      item.setVisible(false); 
    } 

    if(auth_user == "Child"){ 
     MenuItem item = menu.findItem(R.id.action_card_list); 
     item.setVisible(true); 
    } 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    if (id == R.id.action_login) { 
     startActivity(new Intent(this, LoginActivity.class)); 
    } 
    if (id == R.id.action_exercise) { 
     startActivity(new Intent(this, ExerciseListActivity.class)); 
    } 
    if (id == R.id.action_top_problems) { 
     startActivity(new Intent(this, ExercisePostActivity.class)); 
    } 
    if (id == R.id.action_test) { 
     startActivity(new Intent(this, TestActivity.class)); 
    } 
    if (id == R.id.action_exercise2) { 
     startActivity(new Intent(this, AssessmentDailyActivity.class)); 
    } 
    if (id == R.id.action_ocdlist) { 
     startActivity(new Intent(this, OcdListActivity.class)); 
    } 
    if (id == R.id.action_card_list) { 
     startActivity(new Intent(this, CardActivity.class)); 
    } 

    if (id == R.id.action_results) { 
     startActivity(new Intent(this, ResultsActivity.class)); 
    } 
    return super.onOptionsItemSelected(item); 
} 
} 

回答

1

使用.equals()來比較字符串是否相等。

if ("Parent".equals(auth_user)) { 
+0

謝謝,這對我有用。 –