Я только начинаю с Android dev, и хотя Milestone - отличное устройство, Java не является моим естественным языком, и я борюсь как с документами Google по Android SDK, так и с Eclipse и самой Java. Во всяком случае ...
Я пишу клиент микроблога для Android вместе с моим клиентом Windows (MahTweets). На данный момент у меня есть твиты приходят и уходят в обязательном порядке, проблема с пользовательским интерфейсом.
При первом вызове элементы будут упорядочены правильно (как в порядке убывания)
Когда производится обновление
После обработки твитов я звоню adapter.notifyDataSetChanged();
Изначально я думал, что getItem () на адаптере нужно отсортировать (и вот код, который я получил в итоге), но мне все еще не повезло.
public class TweetAdapter extends BaseAdapter
{
private List<IStatusUpdate> elements;
private Context c;
public TweetAdapter(Context c, List<IStatusUpdate> Tweets)
{
this.elements = Tweets;
this.c = c;
}
public int getCount() {
return elements.size();
}
public Object getItem(int position) {
Collections.sort(elements, new IStatusUpdateComparator());
return elements.get(position);
}
public long getItemId(int id) {
return id;
}
public void Remove(int id)
{
notifyDataSetChanged();
}
public View getView(int position, View convertView, ViewGroup parent)
{
RelativeLayout rowLayout;
IStatusUpdate t = elements.get(position);
rowLayout = t.GetParent().GetUI(t, parent, c);
return rowLayout;
}
class IStatusUpdateComparator implements Comparator
{
public int compare(Object obj1, Object obj2)
{
IStatusUpdate update1 = (IStatusUpdate)obj1;
IStatusUpdate update2 = (IStatusUpdate)obj2;
int result = update1.getID().compareTo(update2.getID());
if (result == -1)
return 1;
else if (result == 1)
return 0;
return result;
}
}
}
Есть ли лучший способ сортировки ListViews в Android, но при этом возможность использовать LayoutInflater? (rowLayout = t.GetParent().GetUI(t, parent, c)
расширяет пользовательский интерфейс до конкретного представления, которое может обеспечить реализация микроблога)