gpt4 book ai didi

java - 从 Android Activity 启动 Java 源文件

转载 作者:行者123 更新时间:2023-12-02 07:25:07 25 4
gpt4 key购买 nike

我编写了一个程序,可以在 Eclipse 的控制台和 Linux 的终端窗口中工作。我现在正在将其转换为 Android 应用程序,并且已经完成了 Android UI 的基本功能,直到它需要使用我编写的程序的 Java 文件中的逻辑为止。我来自 Java 文件的所有输入当前都来自键盘(来自扫描仪)。

我的问题是:如何对其进行转换以使其与应用程序的用户交互兼容?

唯一的输入来自内置的NumberPicker。 Java文件从main方法开始:public static void main(String[] args) {)

例如:

示例 Android 代码:

public class Source1 extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.source1_layout);
Intent intent = getIntent();
int pickerValue = intent.getIntExtra("numEntered", 0);
}

程序中的示例 Java 代码 (Test.java):

public class Test {

public static void main(String[] args) {

System.out.println("Enter number: ");
Scanner reader = new Scanner(System.in);
int num = reader.nextInt();
...
}
}

如何将pickerValue传递到Test类的main方法中(启动main方法的逻辑)?我希望在主方法中使用 num = pickerValue; (替换 Scanner)。这是如何完成的?

此外,我的打印语句 System.out.println(...); 是否会直接转换为 Android UI 并在屏幕上打印,还是我必须修改这些语句?

最佳答案

您应该尝试将 UI 与逻辑分开。根据实际收集输入的部分的输入提取您正在计算某些内容的部分。这样,逻辑方法(或类)就可以与多个输入收集方法一起重用。

例如,计算器类不应具有以下方法:

/**
* asks for two numbers A and B, reads them from the keyboard, and displays the result
* of A^B on the screen
*/
public void power() {...}

/**
* asks for a number A, reads it from the keyboard, and displays the square root
* of A on the screen
*/
public void squareRoot() {...}

相反,它应该分为两类:

public class Calculator {
/**
* returns a^b
*/
public double power(double a, double b) {...}

/**
* returns the square root of a
*/
public double squareRoot(double a) {...}
}

public class ConsoleCalculator {
private Calculator calculator;

public ConsoleCalculator(Calculator calculator) {
this.calculator = calculator;
}

/**
* asks for two numbers A and B, reads them from the keyboard, uses
* the calculator to compute A^B, and displays the result on the screen
*/
public void power() {...}

/**
* asks for a number A, reads it from the keyboard, uses the calculator to
* compute the square root of A and displays the result on the screen
*/
public void squareRoot() {...}
}

这样,构建一个 AndroidCalculator 就很容易了,因为核心数学逻辑被封装在 Calculator 类中,它不关心输入来自哪里。

关于java - 从 Android Activity 启动 Java 源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com