Java 活动的某些部分如何';Android上的外部类中的存储?

Java 活动的某些部分如何';Android上的外部类中的存储?,java,android,class,methods,android-activity,Java,Android,Class,Methods,Android Activity,假设我有一个名为MainActivity.java的活动类。但是这个活动有大约3000行代码 我想将此文件的代码部分分离到名为NecessaryThings.java的外部java文件(类)。但如果我在emulator上运行我的项目,它会在这个操作之后自动停止 有没有办法把这项活动的某些部分分开 为了更好,我写了一个小例子 还有你是怎么想的 使用此方法对性能有利还是有害? 这是我的MainActivity.java 获取上述代码后,我想将其存储在needessarythings.java 像这

假设我有一个名为
MainActivity.java
的活动类。但是这个活动有大约3000行代码

我想将此文件的代码部分分离到名为
NecessaryThings.java
的外部java文件(类)。但如果我在emulator上运行我的项目,它会在这个操作之后自动停止

有没有办法把这项活动的某些部分分开

为了更好,我写了一个小例子

还有你是怎么想的

使用此方法对性能有利还是有害?

这是我的MainActivity.java
获取上述代码后,我想将其存储在
needessarythings.java
像这样

//All necessary imports here. There is no problem about those.

public class NecessaryThings extends Activity {

    public void myPersonalMethod() {
        TextView genderResult = (TextView) findViewById(R.id.genderText);
        genderResult.setText("Cinsiyet:");
        TextView calorieResult = (TextView) findViewById(R.id.remainCalorie);

        String getGenderSTR = getIntent().getStringExtra("GENDER");
        genderResult.setText(getGenderSTR);

        String calorieResultSTR = getIntent().getStringExtra("CALORIECHOOSED");
        calorieResult.setText(calorieResultSTR);
    }
}
如果我重新安排MainActivity.java,它将是这样的。。。 但如果我分离代码,它将不起作用。我为什么要这样做?我怎么做?

public class MainActivity extends NecessaryThings {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    myPersonalMethod();
}

NecessaryThings扩展了活动,因此MainActivity不再需要从活动扩展,它应该从NecessaryThings扩展。我需要指出的一点是super.onCreate(savedInstanceState);将调用onCreate();从必需的东西。因为我的个人方法();是来自super class,您可以直接调用它。

所有活动都是常规Java类,您可以-当然,有许多非UI类,如
应用程序
,您可以有
助手
等。查看您的问题,我想告诉您,活动没有用户定义的构造函数,只能通过调用
startActivity
方法间接创建,但在其他方面,它是一个常见的Java类

因此,您必须做的是,让
needessarythings.java
成为一个普通类,您可以将
main活动中的上下文传递给它,并执行所有需要的操作


希望这能有所帮助。

@A--C为什么?逻辑是什么,我不明白。因为没有人在他们的回答中提到:活动有一个(复杂的)生命周期和启动过程。如果您使用构造函数来实例化您的活动,那么您有一个“不完整”的活动,因此,您得到FCs@hakiko:您的逻辑是错误的Activity不仅仅是java类,而是创建Activity cerate的实例一个单独的类,用于在Activities@ρцσѕρєK之间共享方法您是对的。但如果我不分离方法、意图等,我的活动的可管理性就会降低。有时我会迷失在密码中。如果我将我的活动与其他课程分开,我有优势/劣势吗?是的!这就是答案:)首先我尝试了多个扩展,然后我了解到,java不支持多个扩展。谢谢。这个问题已经解决了,好吗。但我做了之后,我有什么优点/缺点吗?这要看情况而定。如果你有很多不必要的东西,那么就没有太多的劣势。你应该把它命名为
BaseActivity
其他人就是这么做的。如果我只在外部类中保存布局相关的东西,比如TextView和Button对象,会发生什么?这是一个好方法吗?只有当您的所有扩展活动都需要这些方法时。这取决于你想做什么。
public class MainActivity extends Activity {


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


    NecessaryThings showMyMethod = new NecassaryThings();
    showMyMethod.myPersonalMethod();


   /*
    the rest of the codes...
   */
}
public class MainActivity extends NecessaryThings {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    myPersonalMethod();
}