-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);
}
}
ありがとう、これは私のために働いた。 –