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
}
});
}
}
答案 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()来使用这些功能。