2017-02-18 2 views
0

Я немного застрял на этом, это не слишком сложно, но меня избили! То, что я пытаюсь сделать, это возобновить сеанс пользователя, получив имя последнего действия, а затем передав его намерению.
Где я застреваю, заключается в преобразовании извлеченной строки в имя класса, поэтому resumeIntent может использовать ее.Преобразование значения String в Java Класс имени

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);} 
+2

Вы пробовали «новый намерение» (это, Class.forName (resumeName)) '?? – Panther

+0

Спасибо большое, он отлично работает :) –

ответ

3

Try ::

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

UPDATE

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

магазин каноническое имя деятельности в строковой переменной.

+0

Спасибо, это было полезно. –

+0

Не говоря уже. Если это было полезно и решило вашу проблему, отметьте это как принятый ответ. – Bayou