对于 Java 来说是新手,对于 Android 开发来说也是新手。
我已遵循以下教程 - Android tutorial (Basic Hello World App)我现在稍微改变它作为概念证明。
基本上我想使用我创建的类,但我遇到了一些困难。该类如下所示。
public class Employee {
private HashMap<String, String> employees = new HashMap<>();
public void setEmployees(String name, String jobTitle) {
employees.put(name, jobTitle);
System.out.println(employees);
}
public String getEmployees(String name){
return employees.get(name);
}
}
我从 MainActivity.java
填充 HashMap
。使用上面的 set 方法,这可以按预期工作。我已经测试过了,可以看到 HashMap 具有所需的条目数。
我的问题是取回数据时。我如何使用该类。我有一个文件名 DisplayMessageActivity.java
以及其中的以下代码。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class DisplayMessageActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
// Get the Intent that started this activity and extract the string
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Capture the layout's TextView and set the string as its text
TextView employee_name = findViewById(R.id.employee_Name);
employee_name.setText(message);
TextView employee_title = findViewById(R.id.employee_Title);
employee_title.setText(employee.getEmployees(message));
}
}
最后一行是我收到错误的地方。这是因为它不知道employee
是什么。我想我需要添加:
Employee employee = new Employee;
如果我在 onCreate
方法中添加它,它会创建一个新实例,因此它具有新值。我还在 onCreate
上方添加了它,结果相同。
我错过了什么?
最佳答案
要保留数据,您需要将变量和方法设为静态
public class Employee {
private static HashMap<String, String> employees = new HashMap<>();
public static void setEmployees(String name, String jobTitle) {
employees.put(name, jobTitle);
System.out.println(employees);
}
public static String getEmployees(String name){
return employees.get(name);
}
}
这意味着一次只能存在一个版本。您可以直接调用类和方法。
employee_title.setText(Employee.getEmployees(message))
关于java - 使用类而不创建它的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48749065/