我有一个名为 ParticleActivity
的 Activity 在我的 Android Studio
中项目。
public class ParticleActivity extends AppCompatActivity {
public final static String EXTRA_MESSAGE = "pso.algo.MESSAGE";
private ProgressDialog pd;
private double[] results = {-1.0, -1.0, -1.0};
EditText particles = (EditText) findViewById(R.id.particles);
EditText iterations = (EditText) findViewById(R.id.iterations);
static EditText solution;
public static double userSolution = Double.parseDouble(solution.getText().toString());
static EditText battery;
public static double batteryLevel = Double.parseDouble(battery.getText().toString());
userSolution
和batteryLevel
声明,以便其他类可以访问这些字段中的用户输入, customUseCase
。
public class CustomUseCase extends Test {
public ArrayList<Double> costData = MainActivity.costDATA; //costs that the user enters for each resource
public ArrayList<Double> costWlan = MainActivity.costWLAN;
public ArrayList<Double> costUtilities = MainActivity.costUTILITY;
public double batteryCost = ParticleActivity.batteryLevel; //battery cost user enters
public double userSolution = ParticleActivity.userSolution; //user's predicted solution
private int maxIter;
private int noParticles;
我知道这不是编写代码的好方法,正如 Android Studio
上所说的那样。我会遇到内存泄漏,因为 Android
组件不应声明为静态变量。但这是我可以想到在哪里可以从 Android
访问用户输入的唯一方法(根据我对 EditText
的了解)。 ParticleActivity
中的字段这样它就可以用在我的customUseCase
中类(class)。有人可以给我一个好方法来写这个吗?谢谢。
最佳答案
尝试使用 Intent
类及其 putExtra
方法
请参阅此处的文档
https://developer.android.com/reference/android/content/Intent.html
使用示例
Intent i = new Intent(ParticleActivity.this,CustomUseCase.class)
i.putExtra("myShow","one");
然后在您的 CustomUseCase 类上
Intent i=getIntent();
String show=i.getStringExtra("myShow");
关于java - 如何从一个 Activity 访问另一个类的用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43281213/