我可以从Non-Activity-Class访问变量,Activity类的方法吗?

问题描述 投票:0回答:1

我想从另一个类操作我的activity类的一些功能。因为我的活动类中的代码数量越来越多,以后难以理解。

这是活动类

main activity.Java

public class MainActivity extends AppCompatActivity {

    private int number = 7;
    public String name = "arafat";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        printSomething();
    }

    private void printSomething() {
        System.out.println("Hello, World!");
    }
}

这是非活动类

non activity class.Java

public class NonActivityClass {
    //can I access the variables and methods from here
}

如何从此非活动类访问活动类的全局或私有字段?

java android class android-activity access-modifiers
1个回答
0
投票

我已经解决了这个问题,使用oop概念和static关键字

我使用了一个java类和一个Activity.I在Activity中创建Java类对象来调用和访问类方法和变量

这是我的代码:

public class NonActivityClass {
 String Myname = "demo";
static String  Myfullname = "";

public static void setName(String name) {
    Myfullname = name;
}

public  String getName() {
    Log.e("check_value","working");
}
public static String getFullName() {
    return Myfullname;
}
}

在这个类中,我创建了一些静态或非静态变量,以及一些方法,如getname(),setname()和getFullname();

main activity.Java

import android.os.Bundle;
 import android.support.v7.app.AppCompatActivity;
 import android.util.Log;

 import static com.example.rdprojects.NonActivityClass.Myfullname;
 import static com.example.rdprojects.NonActivityClass.getFullName;


 public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

  //create NonActivityClass object
    NonActivityClass myclass = new NonActivityClass();

       myclass.getName();

    //call static variable
    Myfullname = "demo demo";
    String fullname = getFullName();

    Log.e("check_full_name", "" + fullname);

}


}

在这个活动中,首先我创建了java类对象,并使用该对象来调用变量和方法。和一些静态方法直接调用。如果您尝试从任何java类中获取数据到活动中尝试此代码。

© www.soinside.com 2019 - 2024. All rights reserved.