我对此有些卡住,虽然不太复杂,但是却被我打败了!
我正在尝试通过获取上一个活动的名称并将其传递给意图来恢复用户的会话。
我遇到的困难是将检索到的String转换为类名,以便resumeIntent可以使用它。

   public void Resume (View view){
    SharedPreferences sharedPref =
    PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
    String resumeName = sharedPref.getString("ActivityName", null);
    //probably need to do something here//
    Intent resumeIntent = new Intent (this, resumeName);
    startActivity(resumeIntent);}

最佳答案

尝试::

Intent resumeIntent = new Intent (this, Class.forName(getPackageName() + resumeName);
startActivity(resumeIntent);


更新

String resumeName = YourActivityName.class.getCanonicalName();
try {
    Class newClass = Class.forName(resumeName);
    Intent resume = new Intent(this, newClass);
    startActivity(resume);
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}


将活动的规范名称存储在字符串变量中。

10-08 12:25