【发布时间】:2016-05-03 03:45:05
【问题描述】:
我目前正在尝试从另一个类中的方法向ArrayList 对象添加一个值。
这是我为ArrayList 对象创建的类:
public class ArrayClass {
public static ArrayList<String> array = new ArrayList<>();
public static void add_val(String s){
array.add(s);
}
public static int get_size(){
return array.size();
}
public static String get_val(int i){
return array.get(i);
}
}
以及我尝试编辑 ArrayList 对象的另一个类:
ArrayClass fill = new ArrayClass();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_explore);
Response.Listener<String> responseListener4 = new Response.Listener<String>(){
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse4 = new JSONObject(response);
boolean success = jsonResponse4.getBoolean("success");
if (success){
int l;
String filled;
int length4 = jsonResponse4.length();
for (l=0;l<length4;l++){
filled = jsonResponse4.getString(l+"");
fill.add_val(filled);
}
}else{
AlertDialog.Builder builder = new AlertDialog.Builder(ExploreActivity.this);
builder.setMessage("Could not retrieve restaurant tables filled")
.setNegativeButton("Retry", null)
.create()
.show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
FilledRequest filledRequest = new FilledRequest(responseListener4);
RequestQueue queue4 = Volley.newRequestQueue(ExploreActivity.this);
queue4.add(filledRequest);
如果您查看onResponse 方法,您可以看到尝试将jsonResponse 中的值添加到ArrayClass 对象中。但是,当我启动我的应用程序时,它不会将值添加到对象中。我习惯了 python 全局变量,不必处理 java 的语义,所以如果你能阐明需要进行哪些更改,我将不胜感激。
【问题讨论】:
-
你怎么知道没有添加这些值?您是否将它们加载到某个地方?
-
@Kayne Khoury 它工作正常,我检查了我的代码。填充的字符串可能有问题。尝试使用日志打印
-
@varunkr 我试图在活动启动时在 toast 中显示对象的长度,结果显示为零,所以我假设没有添加任何值。
标签: java android object arraylist