Получив ответ json от метода GET, я поместил его в массив, но после того, как показано только одно значение, но он говорит, что размер больше единицы.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);
}
}