android-volley - 数组没有被填充。列表视图也没有填充。数组大小多于一个但只有一个值打印
问题描述
从 GET 方法获得我的 json 响应后,我将它放入一个数组中,但只显示了一个值,但它表示大小大于一个。Listview 也没有填充。自定义适配器以前也完全如此使用,但现在无法正常工作。
这是当前无法使用的完整文件。我期望的输出是:要填充的列表视图holderArray.getF2FName()
。即使在重建项目后它也不起作用。
代码从这里开始:
public class rSearchActivity extends AppCompatActivity {
ArrayList<String> itemList = new ArrayList<String>();
ListView listView;
RequestQueue rQueue;
ArrayList<F2FHolder> holderArray = new ArrayList<F2FHolder>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_r_search);
listView = (ListView)findViewById(R.id.rSearchList);
itemList = (ArrayList<String>) getIntent().getSerializableExtra("passingArray");
for(int i=0;i<itemList.size();i++){
System.out.println(itemList.get(i));
}
rQueue = VolleySingleton.getInstance(this).getmRequestQueue();
parse(new CallBack() {
@Override
public void onSuccess(ArrayList<F2FHolder> holderArray) {
if(holderArray.size()>0){
f2fAdapter adapter = new f2fAdapter();
listView.setAdapter(adapter);
}else{
Toast.makeText(rSearchActivity.this,"No recipes available containing these ingredients, try different\n" +
"ingredients",Toast.LENGTH_SHORT);
}
}
@Override
public void onFail(String msg) {
System.out.println(msg);
}
});
}
public void parse(final CallBack onCallBack){
String url =""; //url
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
F2FHolder adder = new F2FHolder();
try {
int count = response.getInt("count");
JSONArray jsonArray = response.getJSONArray("recipes");
for(int i=0; i<count;i++){
JSONObject f2f = jsonArray.getJSONObject(i);
String FName = f2f.getString("title");
String link = f2f.getString("f2f_url");
adder.setF2FName(FName);
adder.setUrl(link);
holderArray.add(adder);
}
onCallBack.onSuccess(holderArray);
} catch (JSONException e) {
e.printStackTrace();
onCallBack.onFail(e.toString());
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
rQueue.add(request);
}
class f2fAdapter extends BaseAdapter{
@Override
public int getCount() {
return holderArray.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = getLayoutInflater().inflate(R.layout.edittextview,null);
final TextView textView = (TextView)convertView.findViewById(R.id.editTextBox);
textView.setText(holderArray.get(position).getF2FName());
return convertView;
}
}
public interface CallBack {
void onSuccess(ArrayList<F2FHolder> holderArray);
void onFail(String msg);
}
}
解决方案
推荐阅读
- javascript - Java script )) 关于随机问答游戏的问题
- c - 传递指向 va_list 的指针的 gcc 错误消息
- node.js - 在 Heroku 上获取请求返回 create-react-app 默认页面?
- python - 字典中的元组
- c - 在我现有的代码中添加 3 个基本功能
- excel - Excel - 根据每个段的值范围查找组
- python - Python - 更改 IDLE 文本颜色在 Windows 上不起作用
- angular - 带有验证器 HTML 渲染问题的 ionic 4 + angular 7 Reactive Form
- reactjs - 使用 history.push() 方法将状态传递给另一个组件
- python - 关于定义函数的基本 Python 问题