2016-12-04 13 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

ありがとう、これは私のために働いた。 –

関連する問題