Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
meshok
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 26
1

Изменение цвета текста, когда код цвета берется с сервера

19.12.2017, 15:29. Просмотров 171. Ответов 3
Метки нет (Все метки)

Есть задание :
Отправить на сервер название цвета, получить от сервера цвет в формате RGB и изменить цвет текста в поле на полученный от сервера код (например, red -> #FF0000). Использовать протокол UDP.

Собственно, у меня все работает, но есть проблема в клиентской части. Когда первый раз отправляешь на сервер к примеру "red", то он присылает тебе код и красит его в этот же цвет. Но когда пытаешься повторить это действие, то приложение крашится. Название цвета на это не влияет, вторая попытка всегда приводит к неудаче.

Вот код клиента:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.example.myapplication;
 
import android.graphics.Color;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        final EditText serverIpEdit = (EditText)findViewById(R.id.serverIP);
        serverIpEdit.setText("192.168.56.1");/**/
        final EditText requestMessageEdit = (EditText)findViewById(R.id.requestMessage);
        requestMessageEdit.setText("red");/**/
        Button sendMessageButton = (Button)findViewById(R.id.sendMessage);
 
 
        class MyAsyncTask extends AsyncTask {
 
            @Override
            protected Object doInBackground(Object[] params) {
                String responseMessage = "";
                try{
                    DatagramSocket socket = new DatagramSocket();
                    byte[] request = ((String)params[1]).getBytes();
                    InetAddress address = InetAddress.getByName((String) params[0]);
                    DatagramPacket packet = new DatagramPacket(request, request.length, address, 4445);
                    socket.send(packet);
 
                    byte[] response = new byte[socket.getReceiveBufferSize()];
                    packet = new DatagramPacket(response, response.length);
                    socket.receive(packet);
                    socket.close();
 
                    responseMessage = new String(packet.getData());
 
                } catch(UnknownHostException e){
                    e.printStackTrace();
                } catch (SocketException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
 
                return responseMessage;
            }
 
            @Override
            protected void onPostExecute(Object o) {
                requestMessageEdit.setText((String)o);
            }
 
        };
 
        sendMessageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new MyAsyncTask().execute(serverIpEdit.getText().toString(), requestMessageEdit.getText().toString());
                requestMessageEdit.setTextColor(Color.parseColor(requestMessageEdit.getText().toString()));
            }
        });
 
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2017, 15:29
Ответы с готовыми решениями:

Изменение цвета текста
Здравствуйте. Глупая задача, но только начинаю разбираться с java И прохожу...

Программное изменение цвета текста button
Доброго времени суток всем! Возникла проблема: Необходимо, чтобы при нажатии...

Изменение цвета текста в отдельной ячейке ListView
Здравствуйте! У меня такой вопрос: имеется ListView, на который также наложенo...

Изменение цвета текста на кнопках-заголовках TabLayout
Разметка у меня такая: <android.support.design.widget.TabLayout ...

Код цвета в textView вместо текста
Доброго времени суток))) При запуске приложения вместо String значения у меня в...

3
Pablito
2721 / 2164 / 735
Регистрация: 12.05.2014
Сообщений: 7,571
Завершенные тесты: 1
19.12.2017, 15:43 2
лог ошибки показать не?
0
meshok
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 26
19.12.2017, 16:03  [ТС] 3
Цитата Сообщение от Pablito Посмотреть сообщение
лог ошибки показать не?
Так в том и суть, там ничего нет. Никаких ошибок. Только в эмуляторе окошко всплывает с текстом "Unfortunately, My Application has stopped"
0
demixdn
310 / 255 / 79
Регистрация: 31.10.2016
Сообщений: 619
19.12.2017, 16:19 4
MyAsyncTask вынести из метода onCreate(), а чтоб он был внутри MainActivity
переменные serverIpEdit и requestMessageEdit сделать полями класса.

requestMessageEdit.setTextColor(Color.parseColor(requestMessageEdit.getText().toString()));
продублировать в onPostExecute(Object o), потому что там вы просто вставляете текст и не парсите его в цвет.

А лог всегда есть, вы в Logcat смотрели?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2017, 16:19

Изменение цвета
Здравствуйте! Есть такой код: <layer-list...

Изменение цвета ActionBar
Всем привет, столкнулся с такой проблемой при попытке изменить цвет...

Изменение цвета заголовка
Ребят срочно надо изменить цвет надписи в actiobar Только по пунктам....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru