Android / Java: ¿Cómo invoco una función en un archivo * .java separado?

Realizo una importación del nombre completo del paquete / archivo java, y si hago un . , ALGUNAS VEZ puedo acceder a él, otras veces can't use a static in a non static grupo can't use a static in a non static de hablar

Admito que soy nuevo en Java, entonces, ¿qué debo hacer? ¿Llamar primero a una instancia de clase, luego llamar a mis métodos? Estoy bastante confundido por esto, ya que quiero poner todas mis ‘funciones’ en un archivo FunctionsList.java, y toda mi actividad principal (UI) en un archivo MyActivity.java.

Por ejemplo:

  import com.example.FunctionsList; private class MyActivity extends Activity { FunctionsList.function(); } 

9/10 veces recibo ese error estático / no estático.

Si pongo todas mis funciones en MyActivity.java, ¡tengo cero problemas! ¿Alguien que me ayude en lo que presumo es un problema básico para principiantes de Java?

Aquí hay un ejemplo que esperamos te ayude un poco.

 public class MyFunctionClass { public String myFunction() { return "This is an instance function."; } public static String myStaticFunction() { return "This is a static function."; } } 

Entonces en tu actividad tienes algo como esto.

 public class MyActivity extends Activity { @Override public void onCreate() { // If you want to call your static function, you do not // require an instance of a MyFunctionClass object. String myStaticString = MyFunctionClass.myStaticFunction(); // If you want to call your instance function, then you need // to create a MyFunctionClass first. MyFunctionClass variableName = new MyFunctionClass(); String myInstanceString = variableName.myFunction(); } } 

Como mencionó Jon, probablemente se ahorrará algo de frustración si lee la progtwigción orientada a objetos antes de sumergirse. Hay algunas cosas básicas que un nuevo progtwigdor deberá comprender antes de sumergirse. ¡Buena suerte!

Si desea utilizar un método no estático, debe tener una instancia de la clase para activar el método. Si desea utilizar un método estático, no necesita una instancia.

Como ejemplo, supongamos que ha intentado llamar a String.length() . ¿Qué podría devolver eso? Intenta encontrar la longitud de algo , pero no ha especificado en qué cadena está interesado. Lo mismo se aplica a otros métodos de instancia: los resultados generalmente dependerán de a qué objeto los está llamando, por eso son métodos de instancia para empezar.

Como nota aparte, te recomiendo que aprendas los conceptos básicos de Java primero, antes de intentar usar Android. De esa manera, cuando te metes en problemas realmente difíciles, no tendrás que preguntarte si es parte de Android o si es un simple error de Java. Vea mi respuesta en una pregunta relacionada para obtener más consejos sobre esto.