Я новичок в разработке Android.Android ArrayAdapter и JSONArray
Я просто люблю работать с объектами и массивами JSON для моего простого приложения, учитывая легкость JSON Carrier по сравнению с XML.
У меня возникли проблемы с ArrayAdapter для заполнения ListView.
Вот как я преодолел и вам нужны ваши предложения.
Extend the Adaptor class.
Затем передайте конструктор JSONArray в конструктор.
Здесь конструктор вызывает супер с dummy Строковый массив, задающий длину JSONArray.
Храните аргументы конструктора в классе для дальнейшего использования.
public myAdaptor(Context context, int resource, JSONArray array)
{
super(context, resource, new String[array.length()]);
// Store in the local varialbles to the adapter class.
this.context = context;
this.resource = resource;
this.profiles = objects;
}
GetView() будет выполнять работу забирающий JSONObjects от JSONArray построить вид.
public View getView(int position, View convertView, ViewGroup parent)
{
View view;
if (convertView == null)
{
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(resource, parent, false);
}
else
{
view = convertView;
}
// Here
JSONObject item = (JSONObject) profiles.getJSONObject(position);
// READY WITH JSONObject from the JSONArray
// YOUR CODE TO BUILD VIEW OR ACCESS THE
}
Теперь Любые улучшения/предложения/Thoughful-вопрос ??
это кажется нормально. еще одна вещь, которую вы можете попробовать, - преобразовать массив json в массив/arraylist объектов, а затем начать обработку. –
imo, вместо предоставления JSONArray вы должны передать результат прохождения и не анализировать информацию каждый раз, когда вы прокручиваете вверх/вниз свой список – Blackbelt
вместо того, чтобы много работать в 'getView', используя структуру данных, такую как ArrayList, HashMap ,. . передать анализируемые значения в классе 'myAdaptor'. –