Я делаю приложение Android, используя Socket-IO, все данные, поиск с сервера через Socket-IO в приложение для Android, и эти данные должны отформатировать в ListView. Но есть проблемы с загрузкой данных в ArrayAdapter. MeainActivity.class < /p>
public class MainActivity extends Activity {
ListView list;
String[] namesArr ;
ArrayList mylist = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper = new databasehelper(this);
list = (ListView)findViewById(R.id.newslist);
SocketIO socket = null;
try {
socket = new SocketIO("http://**************/");
//socket = new SocketIO("http://localhost:7010/");
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
socket.connect(new IOCallback() {
@Override
public void onMessage(JSONObject json, IOAcknowledge ack) {
try {
System.out.println("Server said:" + json.toString(2));
// Log.d("json",""+json);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onMessage(String data, IOAcknowledge ack) {
System.out.println("Server said: " + data);
// Log.d("json",""+ data);
}
@Override
public void onError(SocketIOException socketIOException) {
System.out.println("an Error occured");
socketIOException.printStackTrace();
}
@Override
public void onDisconnect() {
System.out.println("Connection terminated.");
}
@Override
public void onConnect() {
System.out.println("Connection established");
}
@Override
public void on(String event, IOAcknowledge ack, Object... args) {
System.out.println("Server triggered event '" + event + "'");
}
@Override
public void onMessage(JSONArray args,IOAcknowledge remoteAcknowledge) {
// TODO Auto-generated method stub
Log.d("main", ""+args);
try {
JSONArray object = args.getJSONArray(0);
Log.d("object",""+object);
for(int n = 0; n < object.length(); n++)
{
String ob2 = object.getString(n);
Log.d("ob2",""+ob2);
//String[] myarray = new String[n];
mylist.add(ob2);
}
Log.d("arraylist",""+mylist);
namesArr = new String[mylist.size()];
for (int i = 0; i < mylist.size(); i++) {
namesArr = mylist.get(i);
Log.d("string array element",namesArr);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
// This line is cached until the connection is establisched.
socket.send("Hello Server!");
display(mylist);
}
private void display(ArrayList mylist) {
// TODO Auto-generated method stub
ArrayAdapter aa = new ArrayAdapter getApplicationContext(),android.R.layout.simple_list_item_1,mylist);
Log.d("real Arraylist",""+mylist);
//Log.d("array adapter",aa.toString());
// list.setAdapter(aa);
}
}
< /code>
И я получаю ошибку что -то вроде этого < /p>
11-08 07:09:24.783: W/System.err(5775): at com.mayur.socketio.IOConnection.transportMessage(IOConnection.java:703)
11-08 07:09:24.792: W/System.err(5775): at com.mayur.socketio.WebsocketTransport.onMessage(WebsocketTransport.java:82)
11-08 07:09:24.814: W/System.err(5775): at org.java_websocket.client.WebSocketClient.onWebsocketMessage(WebSocketClient.java:361)
11-08 07:09:24.814: W/System.err(5775): at org.java_websocket.WebSocketImpl.deliverMessage(WebSocketImpl.java:565)
11-08 07:09:24.823: W/System.err(5775): at org.java_websocket.WebSocketImpl.decodeFrames(WebSocketImpl.java:331)
11-08 07:09:24.823: W/System.err(5775): at org.java_websocket.WebSocketImpl.decode(WebSocketImpl.java:152)
11-08 07:09:24.823: W/System.err(5775): at org.java_websocket.client.WebSocketClient.interruptableRun(WebSocketClient.java:247)
11-08 07:09:24.823: W/System.err(5775): at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:193)
11-08 07:09:24.823: W/System.err(5775): at java.lang.Thread.run(Thread.java:841)
11-08 07:09:24.832: W/System.err(5775): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
11-08 07:09:24.882: W/System.err(5775): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:5908)
11-08 07:09:24.882: W/System.err(5775): at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:837)
11-08 07:09:24.893: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.893: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.893: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.904: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.904: W/System.err(5775): at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:358)
11-08 07:09:24.913: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.913: W/System.err(5775): at android.widget.AbsListView.requestLayout(AbsListView.java:1837)
11-08 07:09:24.933: W/System.err(5775): at android.widget.ListView.setAdapter(ListView.java:491)
11-08 07:09:24.933: W/System.err(5775): at com.mayur.socketio.MainActivity$1.onMessage(MainActivity.java:147)
11-08 07:09:24.943: W/System.err(5775): at com.mayur.socketio.IOConnection.onMessage(IOConnection.java:937)
11-08 07:09:24.943: W/System.err(5775): at com.mayur.socketio.IOConnection.transportMessage(IOConnection.java:698)
< /code>
Пожалуйста, предложите мне, в чем проблема в моем коде и какое решение ???
заранее < /p>
Подробнее здесь: https://stackoverflow.com/questions/198 ... in-android
Как получить данные из Socket IO в ListView в Android ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1758974962
Anonymous
Я делаю приложение Android, используя Socket-IO, все данные, поиск с сервера через Socket-IO в приложение для Android, и эти данные должны отформатировать в ListView. Но есть проблемы с загрузкой данных в ArrayAdapter. MeainActivity.class < /p>
public class MainActivity extends Activity {
ListView list;
String[] namesArr ;
ArrayList mylist = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper = new databasehelper(this);
list = (ListView)findViewById(R.id.newslist);
SocketIO socket = null;
try {
socket = new SocketIO("http://**************/");
//socket = new SocketIO("http://localhost:7010/");
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
socket.connect(new IOCallback() {
@Override
public void onMessage(JSONObject json, IOAcknowledge ack) {
try {
System.out.println("Server said:" + json.toString(2));
// Log.d("json",""+json);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onMessage(String data, IOAcknowledge ack) {
System.out.println("Server said: " + data);
// Log.d("json",""+ data);
}
@Override
public void onError(SocketIOException socketIOException) {
System.out.println("an Error occured");
socketIOException.printStackTrace();
}
@Override
public void onDisconnect() {
System.out.println("Connection terminated.");
}
@Override
public void onConnect() {
System.out.println("Connection established");
}
@Override
public void on(String event, IOAcknowledge ack, Object... args) {
System.out.println("Server triggered event '" + event + "'");
}
@Override
public void onMessage(JSONArray args,IOAcknowledge remoteAcknowledge) {
// TODO Auto-generated method stub
Log.d("main", ""+args);
try {
JSONArray object = args.getJSONArray(0);
Log.d("object",""+object);
for(int n = 0; n < object.length(); n++)
{
String ob2 = object.getString(n);
Log.d("ob2",""+ob2);
//String[] myarray = new String[n];
mylist.add(ob2);
}
Log.d("arraylist",""+mylist);
namesArr = new String[mylist.size()];
for (int i = 0; i < mylist.size(); i++) {
namesArr[i] = mylist.get(i);
Log.d("string array element",namesArr[i]);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
// This line is cached until the connection is establisched.
socket.send("Hello Server!");
display(mylist);
}
private void display(ArrayList mylist) {
// TODO Auto-generated method stub
ArrayAdapter aa = new ArrayAdapter getApplicationContext(),android.R.layout.simple_list_item_1,mylist);
Log.d("real Arraylist",""+mylist);
//Log.d("array adapter",aa.toString());
// list.setAdapter(aa);
}
}
< /code>
И я получаю ошибку что -то вроде этого < /p>
11-08 07:09:24.783: W/System.err(5775): at com.mayur.socketio.IOConnection.transportMessage(IOConnection.java:703)
11-08 07:09:24.792: W/System.err(5775): at com.mayur.socketio.WebsocketTransport.onMessage(WebsocketTransport.java:82)
11-08 07:09:24.814: W/System.err(5775): at org.java_websocket.client.WebSocketClient.onWebsocketMessage(WebSocketClient.java:361)
11-08 07:09:24.814: W/System.err(5775): at org.java_websocket.WebSocketImpl.deliverMessage(WebSocketImpl.java:565)
11-08 07:09:24.823: W/System.err(5775): at org.java_websocket.WebSocketImpl.decodeFrames(WebSocketImpl.java:331)
11-08 07:09:24.823: W/System.err(5775): at org.java_websocket.WebSocketImpl.decode(WebSocketImpl.java:152)
11-08 07:09:24.823: W/System.err(5775): at org.java_websocket.client.WebSocketClient.interruptableRun(WebSocketClient.java:247)
11-08 07:09:24.823: W/System.err(5775): at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:193)
11-08 07:09:24.823: W/System.err(5775): at java.lang.Thread.run(Thread.java:841)
11-08 07:09:24.832: W/System.err(5775): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
11-08 07:09:24.882: W/System.err(5775): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:5908)
11-08 07:09:24.882: W/System.err(5775): at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:837)
11-08 07:09:24.893: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.893: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.893: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.904: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.904: W/System.err(5775): at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:358)
11-08 07:09:24.913: W/System.err(5775): at android.view.View.requestLayout(View.java:15792)
11-08 07:09:24.913: W/System.err(5775): at android.widget.AbsListView.requestLayout(AbsListView.java:1837)
11-08 07:09:24.933: W/System.err(5775): at android.widget.ListView.setAdapter(ListView.java:491)
11-08 07:09:24.933: W/System.err(5775): at com.mayur.socketio.MainActivity$1.onMessage(MainActivity.java:147)
11-08 07:09:24.943: W/System.err(5775): at com.mayur.socketio.IOConnection.onMessage(IOConnection.java:937)
11-08 07:09:24.943: W/System.err(5775): at com.mayur.socketio.IOConnection.transportMessage(IOConnection.java:698)
< /code>
Пожалуйста, предложите мне, в чем проблема в моем коде и какое решение ???
заранее < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/19859238/how-to-retrive-data-from-socket-io-in-listview-in-android[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия