Llamando a la función mediante el nombre de cadena en la actividad.
Estoy intentando llamar una función por su nombre como una cadena:
java
Method method = null;
try {
method = Class.forName(“com.lab.android.TabActivity”).getMethod(item,String.class);
method.invoke(this, null);
} catch (NoSuchMethodException e) {
Log.e(“DTAG”,”NoSuchMethodException “+e.getMessage());
e.printStackTrace();
} catch (ClassNotFoundException e) {
Log.e(“DTAG”,”ClassNotFoundException “+e.getMessage());
e.printStackTrace();
} catch (IllegalAccessException e) {
Log.e(“DTAG”,”IllegalAccessException “+e.getMessage());
e.printStackTrace();
} catch (InvocationTargetException e) {
Log.e(“DTAG”,”InvocationTargetException “+e.getMessage());
e.printStackTrace();
}
Obtengo una excepción:
NoSuchMethodException com.lab.android.TabActivity.somesome [class java.lang.String]
Esta es la función en mi actividad:
java
public static void somesome() {
Log.d(“DTAG”,”Gran éxito”);
}
davy.ai
Parece que la función no se encuentra. Asegúrate de que la función se declare como
public
y que el nombre de la función sea correcto. Además, asegúrate de que la función se declare en la clasecom.lab.android.TabActivity
.