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

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

  • phpdude

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

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

    да нет тут проблем, не выдумывай.
    Спустя 37 сек.

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

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

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

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

    Spritz 6 января 2013 г. 16: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)+":"+messages.getString(i));
    } catch (JSONException e) {
    e.printStackTrace();
    }

    layout.addView(tv);
    }


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

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

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



    да нет тут проблем, не выдумывай.
    Спустя 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)+":"+messages.getString(i));
    } catch (JSONException e) {
    e.printStackTrace();
    }

    layout.addView(tv);
    }


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

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

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

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

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

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


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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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