我正在讀取UDP數據包,並且我想在UI上顯示該信息作爲android應用程序中的表格。 這裏是我的代碼,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上顯示它[附加到表格],我該如何做到這一點?[滾動和所有我會照顧]請讓我知道 我已經嘗試使用線程但沒有用
請正確格式化您的代碼。 –
是的......我現在格式化代碼@JonathonReinhart – Mahesh
「我已經嘗試過使用線程但沒有用」你是什麼意思?你應該使用AsyncTask。 –