В методе get (), который вы вызвали setLocale (), и в setLocale, вы обновляете действие без завершения finish()
, поэтому каждый раз, когда вы вызываете setLocale или get (), действие будет обновляться sh.
Что вы можете сделать, так это обновить sh действие только тогда, когда пользователь изменит язык следующим образом:
findViewById(R.id.BTN_ar).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setLocale("ar");
//the correct way to refresh an activity
finish();
startActivity(getIntent());
}
});
И удалить это из setLocale ():
Intent refresh = new Intent(this, Arabic.class);
startActivity(refresh);