【发布时间】:2016-11-01 23:04:07
【问题描述】:
我的问题是我有一个创建数组列表的方法。我可以根据需要将其传递给其他方法以供使用。但是,当用户单击使用先前创建的数组列表但我不知道该怎么做的“计算”按钮时,我想调用一个方法calculate。
我最接近的是将我的数组列表声明为全局变量,但我知道全局变量通常很糟糕,即使这样我在代码的最后一行 lookUpMethod(al, lookUpString); 上也得到了一个 Cannot resolve symbol 'al'。
我不确定我做错了什么或最好的处理方法是什么。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<String []> al = new ArrayList<>(); //tried global variable
exampleArrayListofArray (al);
}
public void exampleArrayListofArray (List<String []> al) {
//ArrayList<String []> al = new ArrayList<>(); //original array list declaration
al.add(new String[] {"AB","YZ","12"});
al.add(new String[] {"CD","WX", "34"});
al.add(new String[] {"EF","UV", "56"});
al.add(new String[] {"GH","ST", "78"});
al.add(new String[]{"IJ", "QR", "91"});
al.add(new String[]{"KL", "OP", "10"});
displayArrayListofArray(al);
}
public void displayArrayListofArray(List<String[]> al) {
for (String [] row : al)
for (int column = 0; column <= 2 ; column ++){
System.out.println("Value at Index Row " + al.indexOf(row) +
" Column " + column + " is " + (row)[column]);
}
EditText userField = (EditText) findViewById(R.id.user_field);
String lookUpString = userField.getText().toString();
lookUpMethod(al, lookUpString);
}
public void lookUpMethod(List<String[]> al, String lookUpString) {
boolean isStringFound = false;
for (String[] row : al) {
for (int column = 0; column <= 2; column++) {
if (al.get(al.indexOf(row))[column].equals(lookUpString)) {
System.out.println("Index of '" + lookUpString + "': " + al.indexOf(row) + column);
isStringFound = true;
}
}
}
if (!isStringFound) {
System.out.println("Search string '" + lookUpString + "' does not exist.");
}
}
public void calculate(View view){
EditText userField = (EditText) findViewById(R.id.user_field);
String lookUpString = userField.getText().toString();
System.out.println("user input : " + lookUpString);
lookUpMethod(al, lookUpString);
}
}
【问题讨论】:
-
你想将数据传递给另一个活动?
-
我已经阅读了您的代码,但在方法计算中没有看到任何定义。如果你想使用它,你可以在变量 global 中定义
标签: java android arraylist methods onclick