您好我正在使用全局数组工作android工作室项目, 我可以很好地从全局数组中读取,并且写入没有问题 全局整数,但我无法弄清楚如何设置全局 代码中的数组,这是项目的重要部分:
在android manifest xml:
中的application标签下添加了这个android:name=".Globals"
java class Globals:
import android.app.Application;
public class Globals extends Application {
public int empnum=13;
public int getData3() {
return empnum;
}
public void setData3(int empnum) {
this.empnum = empnum;
}
public String[] passw = {"0123","0123","0123","0123","0123","0123","0123","0123","0123","0123","0123","0123","0123"};
public String[] getData4() {
return passw;
}
public void setData4(String[] passw) {
this.passw = passw;
}
public int login=0;
public int getData5() {
return login;
}
public void setData5(int login) {
this.login = login;
}
public String[] empname = {"Name1","Name2","Name3","Name4","Name5","Name6","Name7","Name8","Name9","Name10","Name11","Name12","Name13","Not logged in"};
public String[] getData6() {
return empname;
}
public void setData6(String[] empname) {
this.empname = empname;
}
以下是我遇到问题的代码块
java类的内部类TimeIn:
final Globals g = (Globals) getApplication();
final String[] empname = g.getData6();
final String[] passw = g.getData4();
public void onClick(View v) {
i = 0;
String empname = edit2.getText().toString();
int getemn = Integer.parseInt(edit.getText().toString());
if (i == 0 && h == 0) {
g.setData3(getemn);
g.setData6(String[getemn], empname); // This one line right here won't compile, I have tried different combinations but have had 0 luck
i = 1;
h = 1;
}
}
获取和使用String数组没有问题,这就是它的工作原理 数组值并将其与字符串进行比较:
public void onClick(View v) {
i = 0;
String getemp = edit2.getText().toString();
int getemn = Integer.parseInt(edit.getText().toString());
if (i == 0 && getemp.equals(passw[getemn])) { // All of this works perfectly
g.setData3(getemn);
g.setData5(0);
tfone.setText("Empoyee " + getemn);
tftwo.setText("Logged in");
i = 1;
}
if (i == 0 && getemp != (passw[getemn])) {
tfone.setText("No matches found");
edit2.setText("Not logged in");
i = 1;
}
}
所以我知道这行代码是错误的:
g.setData6(String[getemn], empname);
但是 我的生活我无法弄清楚它应该如何写,唯一的错误提示是我 从悬停在线上 -
预期的数组类型;找到'java.lang.String'
任何人都知道我做错了什么?
答案 0 :(得分:1)
在Global
类中,使用一个参数
public void setData6(String[] empname) {
this.empname = empname;
}
但是当你打电话时,你会输入2个参数g.setData6(String[getemn], empname);
你应该删除一个参数
或者在Globals
class
同时强> 你在这里错了
...
String empname = edit2.getText().toString();
int getemn = Integer.parseInt(edit.getText().toString());
...
g.setData6(String[getemn], empname); // This one line right here won't compile, I have tried different combinations but have had 0 luck
setData6
函数现在需要2个参数,一个是String array
,另一个是String
但是你将String array
放到函数中的方式是错误的
这是一个简单的示例,展示了如何将String array
传递给函数
public class Test {
public static void setData6(String[] empnameList, String empname) { // with the `String array` you should declare the variable name like `empnameList` or `arrEmpname` NOT `empname` because `empname` make confusing when you read code
this.empnameList = empnameList;
this.empname = empname;
}
public static void main(String[] args) {
String[] strArray = new String[]{"Name1","Name2","Name2"};
String empName = "Na";
setData6(strArray,empName); // call method with 2 parameters here
}
}
希望这个帮助
答案 1 :(得分:0)
解决!!事实证明我必须修改我的Globals类的setter部分,所以Globals类中的第一部分(getter方法)是正确的:
function finalResults() {
var theAnswer = Object.keys(answerData).
reduce(function(a, b){
return answerData[a].score > answerData[b].score ? a : b }
);
document.getElementById("finalResulthere").innerHTML = "<p>Congratulations you are a " + theAnswer +".</p>";
}
我必须将我的Globals类的getter部分更改为:
score
要从任何类设置所需索引的值,只需使用:
public String[] compname = {"Manager's company", "Company2", "Company3", "Company4", "Company5", "Company6", "Company7", "Company8", "Company9", "Company10", "Company11", "Company12", "Company13", "Not punched in"};
public String[] getData7() {
return compname;
}
其中getemn是一个整数,getemp是一个字符串。