ФорумСообществоФлейм → Построение диалога в программе используя данные с сервера (json)

Построение диалога в программе используя данные с сервера (json)

  • phpdude

    Сообщения: 26618 Репутация: N Группа: в ухо

    Spritz 6 января 2013 г. 7:24, спустя 4 минуты 9 секунд

    да нет тут проблем, не выдумывай. {+++37+++}

    phpdude, ахуеть, с таким же успехом можно сказать что и метки времени может не быть… или нет?
    поэтому и сказал

    абсолютно идентичное решение.

    Сапожник без сапог
  • aba90

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 6 января 2013 г. 7:49, спустя 25 минут 17 секунд


    да нет тут проблем, не выдумывай. {+++37+++}

    phpdude, ахуеть, с таким же успехом можно сказать что и метки времени может не быть… или нет?
    поэтому и сказал

    абсолютно идентичное решение.





    JSONObject json = null;
    JSONArray authors = null;
    JSONArray messages = null;
    try {
    json = new JSONObject("{\"authors\":[\"login1\",\"login2\",\"login3\",\"login4\"],\"messages\":[\"msg1\",\"msg2\",\"msg3\",\"msg4\"]}");

    authors = json.getJSONArray("authors");
    messages = json.getJSONArray("messages");
    } catch (JSONException e) {
    e.printStackTrace();
    }

    LinearLayout layout = (LinearLayout)findViewById(R.id.messagesContainer);


    int length = authors.length();

    for(int i=0;i<length;i++){
    TextView tv = new TextView(getApplicationContext());
    tv.setBackgroundResource(R.drawable.back);
    tv.setPadding(0, 2, 1, 0);

    tv.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
    tv.setSingleLine(false);
    try {
    tv.setText(authors.getString(i)+&quot;:&quot;+messages.getString(i));
    } catch (JSONException e) {
    e.printStackTrace();
    }

    layout.addView(tv);
    }


    ну давай реализуй программно, я пасс
  • phpdude

    Сообщения: 26618 Репутация: N Группа: в ухо

    Spritz 6 января 2013 г. 7:54, спустя 5 минут 11 секунд



    да нет тут проблем, не выдумывай. {+++37+++}

    phpdude, ахуеть, с таким же успехом можно сказать что и метки времени может не быть… или нет?
    поэтому и сказал

    абсолютно идентичное решение.





    JSONObject json = null;
    JSONArray authors = null;
    JSONArray messages = null;
    try {
    json = new JSONObject(&quot;{\&quot;authors\&quot;:[\&quot;login1\&quot;,\&quot;login2\&quot;,\&quot;login3\&quot;,\&quot;login4\&quot;],\&quot;messages\&quot;:[\&quot;msg1\&quot;,\&quot;msg2\&quot;,\&quot;msg3\&quot;,\&quot;msg4\&quot;]}&quot;);

    authors = json.getJSONArray(&quot;authors&quot;);
    messages = json.getJSONArray(&quot;messages&quot;);
    } catch (JSONException e) {
    e.printStackTrace();
    }

    LinearLayout layout = (LinearLayout)findViewById(R.id.messagesContainer);


    int length = authors.length();

    for(int i=0;i<length;i++){
    TextView tv = new TextView(getApplicationContext());
    tv.setBackgroundResource(R.drawable.back);
    tv.setPadding(0, 2, 1, 0);

    tv.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
    tv.setSingleLine(false);
    try {
    tv.setText(authors.getString(i)+&quot;:&quot;+messages.getString(i));
    } catch (JSONException e) {
    e.printStackTrace();
    }

    layout.addView(tv);
    }


    ну давай реализуй программно, я пасс
    не понял что именно ты от меня хочешь чтобы я реализовывал. да и я все равно пасс, у меня своих гемороев хватает, не до чужих. только знаю одно, ничего клинически сложного нет в твоей задаче
    Сапожник без сапог
  • aba90

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 6 января 2013 г. 8:06, спустя 12 минут 14 секунд

    я знаю что нет, но я пока слишком тупой чтобы понять эту задачу и ее решение
  • AlexB

    Сообщения: 4288 Репутация: N Группа: в ухо

    Spritz 6 января 2013 г. 8:07, спустя 1 минуту 5 секунд


    AlexB, в чём лоховство то?
    id в запросах по возможности надо использовать, только для того что бы извлечь соответствующий объект. Аксиома, ептыть. Потому что строго говоря они вообще не обязаны идти подряд. Да миллион причин и просто хороший тон, ебть. Например, если у тебя в базе миллион записей, серией запросов:
    after_id=1
    after_id=2
    after_id=3

    Тебя задосят и уложат базу без всякого ботнета. И нет четкого критерия, чтобы отсечь &quot;плохие запросы&quot;. Потому что id - НЕ НЕСЕТ НИКАКОЙ ИНФОРМАЦИИ, КРОМЕ ИДЕНТИФИКАЦИИ КОНКРЕТНОГО ОБЪЕКТА. Тогда как с временными метками, можно тупо отсекать все что &quot;подозрительно старое&quot;.
  • aba90

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 6 января 2013 г. 8:29, спустя 21 минуту 39 секунд



    AlexB, в чём лоховство то?
    id в запросах по возможности надо использовать, только для того что бы извлечь соответствующий объект. Аксиома, ептыть. Потому что строго говоря они вообще не обязаны идти подряд. Да миллион причин и просто хороший тон, ебть. Например, если у тебя в базе миллион записей, серией запросов:
    after_id=1
    after_id=2
    after_id=3

    Тебя задосят и уложат базу без всякого ботнета. И нет четкого критерия, чтобы отсечь &quot;плохие запросы&quot;. Потому что id - НЕ НЕСЕТ НИКАКОЙ ИНФОРМАЦИИ, КРОМЕ ИДЕНТИФИКАЦИИ КОНКРЕТНОГО ОБЪЕКТА. Тогда как с временными метками, можно тупо отсекать все что &quot;подозрительно старое&quot;.

    а как понять что для определенного клиента старое а что новое?
  • AlexB

    Сообщения: 4288 Репутация: N Группа: в ухо

    Spritz 6 января 2013 г. 8:38, спустя 9 минут 24 секунды

    Ну так timestamp то с клиента придет … все что после него - новое. ))))))))
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 6 января 2013 г. 8:48, спустя 9 минут 44 секунды

    Ну так timestamp то с клиента придет

    уж точно не с клиента, мало ли какое у него время
    таймстамп должен отдавать сервер
    не всё полезно, что в swap полезло
  • aba90

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 6 января 2013 г. 8:50, спустя 2 минуты 16 секунд

    да и если нового 2000… {+++32+++} принимать по лимиту… а лимит за счет чего выставлять? {+++35+++} не возбуждает что то меня это андроид программирование
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 6 января 2013 г. 8:55, спустя 4 минуты 24 секунды

    а как понять что для определенного клиента старое а что новое?


    это классическая задача о таджикском пинг-понге:

    клиент: ахаляй махаляй, насяльника, моя присёл, последьние тватсать саапсений хотеть
    сервер: [последние 20 сообщений] + current_timestamp=&quot;2013-01-07 01:02:03&quot;

    спустя 50 секунд:
    клиент: ахаляй махаляй, насяльника, моя присёл, последние соопсения начиная с &quot;2013-01-07 01:02:03&quot; хотеть
    сервер: [список сообщений] + current_timestamp=&quot;2013-01-07 01:02:53&quot;

    и т.д.
    не всё полезно, что в swap полезло
  • AlexB

    Сообщения: 4288 Репутация: N Группа: в ухо

    Spritz 6 января 2013 г. 10:10, спустя 1 час 15 минут 37 секунд


    Ну так timestamp то с клиента придет

    уж точно не с клиента, мало ли какое у него время
    таймстамп должен отдавать сервер
    Да вы чего все, с перепою после праздников? Разумеется сервер сначала отдает пачку сообщений с таймстемпами. Для того чтобы запросить следующую пачку клиент посылает последний таймстемп из предыдущей пачки. Речь именно об этом шаге с самого начала топика. О чем вообще разговор, не пойму …
    В самой первой же мессаге дуд дал исчерпывающий ответ, на этом надо было заканчивать, но понеслось какое-то словоблудие даже от ветеранов форума …
  • phpdude

    Сообщения: 26618 Репутация: N Группа: в ухо

    Spritz 6 января 2013 г. 10:45, спустя 35 минут 3 секунды

    Потому что строго говоря они вообще не обязаны идти подряд.

    все верно говоришь. особено если шардится горизонтально, а id вовсе не id,а например uuid
    Сапожник без сапог
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 6 января 2013 г. 13:06, спустя 2 часа 20 минут 16 секунд

    AlexB
    Потому что строго говоря они вообще не обязаны идти подряд.

    все верно говоришь. особено если шардится горизонтально, а id вовсе не id,а например uuid

    если несколько серверов, то и время подряд идёт не всегда )
  • phpdude

    Сообщения: 26618 Репутация: N Группа: в ухо

    Spritz 6 января 2013 г. 13:20, спустя 14 минут 46 секунд

    то и время подряд идёт не всегда )

    в смысле? тайм стамп то все равно идет ровно))
    Сапожник без сапог
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 6 января 2013 г. 13:37, спустя 17 минут

    да какая разница, как я уже заметил всё зависит от конкретного случая. Я чаще всего встречаю API с параметрами before_id и after_id. Везде всё работает и довольно удобно для разработки клиента.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!