私のアプリケーションでは、初めてアクティビティを実行する言語を選択するアクティビティがありますが、フラグメントを切り替えるときに表示されることがあります。実行の最初の時間だけを表示するにはどうすればよいですか?アプリケーションの実行中に最初に実行されたアクティビティが表示されます
コード:MainActivity
if (isFirstTime()) {
Intent myIntent;
myIntent = new Intent(this, Settings.class);
startActivity(myIntent);
}else{
... start the normal mainactivity
}
FIRSTTIME fucntion:
private boolean isFirstTime() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
boolean ranBefore = preferences.getBoolean("RanBefore1", false);
return !ranBefore;
}
設定アクティビティ:
private Spinner spinner;
private Button button;
private String lang="";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_layout);
findViewByID();
setListeners();
}
private void findViewByID() {
spinner = (Spinner) findViewById(R.id.spinner);
button = (Button) findViewById(R.id.button2);
ArrayAdapter adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.langs));
spinner.setAdapter(adapter);
}
private void setListeners() {
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
switch (position) {
case 0:
lang= "en";
break;
case 1:
lang="fr";
break;
case 2:
lang="ar";
break;
} }
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("RanBefore1", true);
editor.apply();
if(getLanguage()!=null&&!getLanguage().contains(lang)) {
setLanguage(lang);
Intent mainIntent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(mainIntent);
}else {
Intent mainIntent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(mainIntent);
}
}
});
}
完了したらアクティビティを終了する必要があります。私。新しいものを起動した後 –
@TimCastelijnsだから、finish()を追加するだけです。 startActivity(mainIntent);を起動した後のSettingsアクティビティ – busted13