android - 如何创建可重用的函数?

时间:2012-07-22 19:39:15

标签: android

在我的android项目中,我有很多活动,其中一些已经扩展了其他东西,如地图活动或BroadcastReceiver。

如何创建可以从任何活动调用的函数,因为我不想在多个活动中重复任何代码。

感谢。

5 个答案:

答案 0 :(得分:15)

如果我有一些有用的函数可以执行我想要从几个Activity调用的有用的任务,我会创建一个名为Util的类并将它们停放在那里。我创建它们static,这样我就不需要分配任何对象了。

以下是我写的一个类的一部分示例:

public final class Util {
    public final static int KIBI = 1024;
    public final static int BYTE = 1;
    public final static int KIBIBYTE = KIBI * BYTE;

    /**
     * Private constructor to prevent instantiation
     */
    private Util() {}

    public static String getTimeStampNow() {
        Time time = new Time();
        time.setToNow();
        return time.format3339(false);
    }
}

要使用这些常量和方法,我可以从类名而不是任何对象访问它们:

int fileSize = 10 * Util.KIBIBYTE;
String timestamp = Util.getTimeStampNow();

课堂上还有比这更多的内容,但你明白了。

答案 1 :(得分:3)

您可以扩展Application类,然后在您的活动中调用getApplication方法并将其强制转换为您的应用程序类以调用该方法。

您可以通过创建扩展android.app.Application:

的类来完成此操作
package your.package.name.here;

import android.app.Application;

public class MyApplication extends Application {

    public void doSomething(){
        //Do something here
    }
}

在你的清单中,你必须找到标签并添加android:name =“MyApplication”属性。

在您的活动类中,您可以通过执行以下操作来调用该函数:

((MyApplication)getApplication()).doSomething();

还有其他方法可以做类似的事情,但这是其中一种方法。文档甚至指出静态单例在大多数情况下是更好的选择。应用程序文档位于:http://developer.android.com/reference/android/app/Application.html

答案 2 :(得分:0)

您可以创建一个静态方法或包含此方法的对象。

答案 3 :(得分:0)

您可以创建一个扩展Activity的类,然后确保您的实际活动是该活动的子类,而不是通常的内置活动。只需在此父活动中定义您的公共代码即可。

Shachar

答案 4 :(得分:0)

  1. 使用抽象修饰符创建一个新的Java类BaseActivity,并使用AppCompatActivity对其进行扩展。

  2. 在Java类BaseActivity下移动所有方法。

package com.example.madbox;

public abstract class BaseActivity extends AppCompatActivity {

    protected void YourClass() {

    }
}

  1. 使用BaseActivity而不是AppCompatActivity扩展您的活动。