如何在所有活动中重用功能

时间:2017-10-16 14:10:52

标签: android android-studio android-fragments

Hello Everyone我正在开发一个Android应用程序,我在我的Activity中创建了函数getGPS()。现在我想在我的应用程序中的所有活动中使用此功能。我试过创建另一个java文件,但它想要有效。谁能告诉我怎么用呢?

app

我已经创建了另一个java文件并编写了代码

package com.example.hp.mirocareltd;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.location.*;


public class main_page extends AppCompatActivity {
    LocationManager service;
    Intent intent;
    boolean enabled;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_page);

        //super.getGPS(); // not working
        // new BaseMethods().getGSP(); // not working 

        Button buttonLogin = (Button)findViewById(R.id.btn_login);
        buttonLogin.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Do something in response to button click

            }
        });

    }
}

3 个答案:

答案 0 :(得分:3)

答案很简单。创建一个从AppCompatActivity扩展的新抽象类(例如,将其命名为:BaseActivity)。然后,您添加的每个活动都应该从BaseActivity延伸。使您的getGPS()功能受保护,您就可以从所有子活动中访问它。

abstract class BaseActivity extends AppCompatActivity {
    ...
    protected void getGPS() {
        ...
    }
}

答案 1 :(得分:1)

我建议以正确的方式使用依赖注入(例如Dagger2)并创建名为PositioningService或LocationService的接口以注入您的活动。该服务将包含您的方法getGPS()。

现在,您可以轻松测试getGPS()方法并将该服务注入应用程序中需要它的任何部分。您甚至可以控制依赖关系的生命周期,如果它在每次需要时都是相同的实例或新实例。

答案 2 :(得分:0)

要在任何地方重用该函数,请创建一个类utils.java。它应该被宣布为公开和最终的。然后,编写您认为需要在应用程序的任何位置重复使用的所有功能。使函数公共静态。

以下是一个示例代码:

public final class utils.java
{

private utils()
{
}

//Here is your function
public static void getGPS() {
        ...
    }

//You can add how many every functions you want
//And use them across your app
public void getSum()
{
}

}

您可以通过调用utils.getGps()来使用这些功能。