我正在读取 UDP 数据包,我想在 UI 上将该信息显示为 android 应用程序中的表格。这是我的代码,
try {
byte buffer[] = new byte[10000];<br/>
InetAddress address = InetAddress.getByName("192.168.xx.xx");<br/>
int port = xxx;<br/>
Log.d("..........","What will Happen ?? ");<br/>
for(int k=0;k<50;k++) { // 50 rows are added , This i wanna make it 5000+ rows so it takes plenty of time to load that table <br/>
DatagramPacket p = new DatagramPacket(buffer, buffer.length, address, port);<br/>
DatagramSocket ds = new DatagramSocket(port);<br/>
Log.d("..........","Perfect Binding .... Waiting for Data");<br/>
ds.receive(p);<br/>
Log.d("..........","Packet Received");<br/>
byte[] data = p.getData();<br/>
String result = "";<br/>
int b[] = new int[data.length];</br>
for (int i=0; i < 150; i++) {<br/>
result += Integer.toString( ( data[i] & 0xff ) + 0x100, 16).substring( 1 );<br/>
result += "_";<br/>
}<br/>
Log.d("Result => ",result); <br/>
TableLayout tl=(TableLayout)findViewById(R.id.TableLayout01);<br/>
TableRow tr=new TableRow(this);
TextView tv= new TextView(this);
TextView tv2 = new TextView(this);
tv.setPadding(5, 0, 5, 0);
tv2.setPadding(5,0,5,0);
String k1 = Integer.toString(k);
tv.setText(k1);
tv2.setText(it_version);
tr.addView(tv);
tr.addView(tv2);
tl.addView(tr,1);
ds.close();
}
} catch (Exception e) {
Log.e("UDP", "Client error", e);
}
如果我保持 50 行能够正确显示它而没有任何时间延迟,如果我放 3000 行它需要很长时间并且有时应用程序挂起......我想在一个表中添加 50 个条目并加载表并再次读取 50条目并附加到表格而不触摸任何按钮或任何东西,所以我在 UI 中有一个表格,它会通过读取 UDP 数据包自动更新......我怎么能做到这一点?任何线索表示赞赏。
或者一旦我读取了 UDP 数据包,我想在 UI 上显示它[附加到表格],我该怎么做??[滚动和我会照顾的一切] 请让我知道 我已经尝试过使用线程但没有用