Java 当我按下退出按钮时,如何切换回我的选择语言活动?

Java 当我按下退出按钮时,如何切换回我的选择语言活动?,java,android,sharedpreferences,Java,Android,Sharedpreferences,我需要帮助我的清单启动器活动是LanguageChooseActivity.java,当用户选择语言时,我使用了共享首选项,他取消了LanguageChooseActivity,并在启动应用程序后直接进入mainActivity,但在main Activity中我有退出按钮,当用户按下退出按钮时,他应返回LanguageChooseActivity以再次选择语言。请帮忙做这件事 这是我的密码: 语言选择活动 private TextView rusVersion; private TextV

我需要帮助我的清单启动器活动是LanguageChooseActivity.java,当用户选择语言时,我使用了共享首选项,他取消了LanguageChooseActivity,并在启动应用程序后直接进入mainActivity,但在main Activity中我有退出按钮,当用户按下退出按钮时,他应返回LanguageChooseActivity以再次选择语言。请帮忙做这件事

这是我的密码: 语言选择活动

 private TextView rusVersion;
 private TextView engVersion;
 private SharedPreferences sharedPreferences;
 private SharedPreferences.Editor editor;
 private boolean launchedEng;
 private boolean launchedRus;


 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_language_choose);




         afterChoseLanguage();




     rusVersion = findViewById(R.id.rus_version);
     rusVersion.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
             if(rusVersion.isPressed()){
                 editor = sharedPreferences.edit();
                 editor.putBoolean("launchedRus", true);
                 editor.apply();

             }
             startActivity(new Intent(LanguageChooseActivity.this,RusMainMenuActivity.class));

         }
     });

     engVersion = findViewById(R.id.eng_version);
     engVersion.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            if(engVersion.isPressed()){
                editor = sharedPreferences.edit();
                editor.putBoolean("launchedEng", true);
                editor.apply();

         }
             startActivity(new Intent(LanguageChooseActivity.this,EngMainMenuActivity.class));

         }
     });

 }

 public void afterChoseLanguage(){
     sharedPreferences = getPreferences(Context.MODE_PRIVATE);
     launchedEng = sharedPreferences.getBoolean("launchedEng",false);
     launchedRus = sharedPreferences.getBoolean("launchedRus",false);
     if(launchedEng){
         Intent intent = new Intent(this, EngMainMenuActivity.class);
         startActivity(intent);
     } else if (launchedRus){
         Intent intent = new Intent(this, RusMainMenuActivity.class);
         startActivity(intent);
     }
 }
} ```

and MainMenuActivity:

 ``` FrameLayout layout;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);

     DisplayMetrics dm = getResources().getDisplayMetrics();
     MainActivity.scale =(float) dm.widthPixels / 1080f;
     MainActivity.dm = dm;

     requestWindowFeature(Window.FEATURE_NO_TITLE);
     this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,         WindowManager.LayoutParams.FLAG_FULLSCREEN);

     layout = new FrameLayout(this);
     layout.setBackgroundColor(ResourceColors.colorWhite);
     setContentView(layout);

     design();

 }

 private void design(){

     Bitmap logoMain = getBitmapFromAsset(this,"logo_Main.png");
     logoMain = Bitmap.createScaledBitmap(logoMain,(int)(480*MainActivity.scale),(int)(158*MainActivity.scale), false);
     ImageView iLogoMain = new ImageView(this);
     iLogoMain.setImageBitmap(logoMain);
     iLogoMain.setLayoutParams(new FrameLayout.LayoutParams((int)(480*MainActivity.scale),(int)(158*MainActivity.scale)));
     iLogoMain.setX(MainActivity.dm.widthPixels/2 - logoMain.getWidth()/2);
     iLogoMain.setY(80*MainActivity.scale);

     layout.addView(iLogoMain);

     for (int i = 0; i < 20; i++) {
         Bitmap iconRus = getBitmapFromAsset(this, "iconMainMenu/ru_" + (i + 1) + ".png");
         iconRus = Bitmap.createScaledBitmap(iconRus, (int) (238 * MainActivity.scale), (int) (238 * MainActivity.scale*(iconRus.getHeight()/(float)iconRus.getWidth())), false);
         ImageView iIcon = new ImageView(this);
         iIcon.setLayoutParams(new FrameLayout.LayoutParams(iconRus.getWidth(), iconRus.getHeight()));
         iIcon.setImageBitmap(iconRus);
         iIcon.setX(55 * MainActivity.scale + (244 * (i % 4))* MainActivity.scale);
         iIcon.setY(390 * MainActivity.scale + (277 * (i / 4))* MainActivity.scale);
         iIcon.setId(100+i);


iIcon.setOnClickListener(new View.OnClickListener() {
             @SuppressLint("ResourceType")
             @Override
             public void onClick(View v) {

                 if (v.getId() == 119) {


                     }



             }
         });


         layout.addView(iIcon);
     }

 }

 public static Bitmap getBitmapFromAsset(Context context, String filePath) {
     AssetManager assetManager = context.getAssets();

     InputStream istr;
     Bitmap bitmap = null;
     try {
         istr = assetManager.open(filePath);
         bitmap = BitmapFactory.decodeStream(istr);
     } catch (IOException e) {
         // handle exception
     }

     return bitmap;
 }


}
私有文本视图版本;
私有文本视图英文版;
私人共享引用共享引用;
私有共享参考。编辑器;
私有布尔启动;
私有布尔启动;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u language\u choose);
后choselanguage();
rusVersion=findViewById(R.id.rus_版本);
rusVersion.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
if(rusVersion.isPressed()){
editor=SharedReferences.edit();
编辑:putBoolean(“launchedRus”,true);
editor.apply();
}
startActivity(新意图(LanguageChooseActivity.this,RusMainMenuActivity.class));
}
});
engVersion=findViewById(R.id.eng_版本);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
if(engVersion.isPressed()){
editor=SharedReferences.edit();
编辑:putBoolean(“Launcheden”,真);
editor.apply();
}
startActivity(新意图(LanguageChooseActivity.this,EngMainMenuActivity.class));
}
});
}
公共语言后的空白(){
SharedReferences=getPreferences(Context.MODE\u PRIVATE);
Launcheden=SharedReferences.getBoolean(“Launcheden”,false);
launchedRus=SharedReferences.getBoolean(“launchedRus”,false);
如果(发射){
意向意向=新意向(此,EngMainMenuActivity.class);
星触觉(意向);
}否则如果(发射德鲁兹){
Intent Intent=新Intent(this,RusMainMenuActivity.class);
星触觉(意向);
}
}
} ```
和主要活动:
```框架布局;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
DisplayMetrics dm=getResources().getDisplayMetrics();
MainActivity.scale=(浮点)dm.widthPixels/1080f;
MainActivity.dm=dm;
requestWindowFeature(窗口。功能\u无\u标题);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
布局=新的框架布局(本);
布局.setBackgroundColor(ResourceColor.colorWhite);
setContentView(布局);
设计();
}
私人空间设计(){
位图logoMain=getBitmapFromAsset(这是“logo_Main.png”);
logoMain=Bitmap.createScaledBitmap(logoMain,(int)(480*MainActivity.scale),(int)(158*MainActivity.scale),false);
ImageView iLogoMain=新的ImageView(此);
iLogoMain.setImageBitmap(logoMain);
iLogoMain.setLayoutParams(新的FrameLayout.LayoutParams((int)(480*MainActivity.scale),(int)(158*MainActivity.scale));
iLogoMain.setX(MainActivity.dm.widthPixels/2-logoMain.getWidth()/2);
iLogoMain.setY(80*MainActivity.scale);
布局。添加视图(iLogoMain);
对于(int i=0;i<20;i++){
位图iconRus=getBitmapFromAsset(这是“iconMainMenu/ru_389;”+(i+1)+.png”);
iconRus=Bitmap.createScaledBitmap(iconRus,(int)(238*MainActivity.scale),(int)(238*MainActivity.scale*(iconRus.getHeight()/(float)iconRus.getWidth()),false);
ImageView iIcon=新的ImageView(本);
iIcon.setLayoutParams(新的FrameLayout.LayoutParams(iconRus.getWidth(),iconRus.getHeight());
iIcon.setImageBitmap(iconRus);
iIcon.setX(55*MainActivity.scale+(244*(i%4))*MainActivity.scale);
iIcon.setY(390*MainActivity.scale+(277*(i/4))*MainActivity.scale);
iIcon.setId(100+i);
iIcon.setOnClickListener(新视图.OnClickListener(){
@SuppressLint(“资源类型”)
@凌驾
公共void onClick(视图v){
if(v.getId()==119){
}
}
});
布局。添加视图(iIcon);
}
}
公共静态位图getBitmapFromAsset(上下文上下文,字符串文件路径){
AssetManager AssetManager=context.getAssets();
输入流istr;
位图=空;
试一试{
istr=assetManager.open(文件路径);
位图=BitmapFactory.decodeStream(istr);
}捕获(IOE异常){
//处理异常
}
返回位图;
}
}

如果我正确理解了您的问题,您已经在代码中使用了答案。。。在onClick for exit按钮中有一个方法来启动另一个活动

public void btnExit (View view) {

    Intent intent = new Intent(getApplicationContext(), LanguageChooseActivity.class);
    startActivity(intent);

}
如果您想根据来自的屏幕设置某些内容,您可以在意向呼叫中传递额外信息。只需在Intent定义和startActivity调用之间插入代码

intent.putExtra("STRING_NAME", VALUE_UNDEFINED); // use "" on the value if sending a string else, don't
然后,当您的LanguageChooseActivity再次启动时,您可以通过以下内容找到该信息(这里您需要定义发送的变量类型)

Intent intent = getIntent();

if (intent.getStringExtra("STRING_NAME").equals("VALUE")) { 
// or (intent.getIntExtra("STRING_NAME") == 0) etc

    // do work

}