我正在致力於發送和接收數據的android應用程序。在應用程序中,我有一個按鈕幾個texviews。當我按下按鈕時,數據(兩個字符)將被髮送。並且已發送的數據將以兩個最初的視圖顯示。setText嘗試顯示字節值時崩潰應用程序
我做了兩個整數和現在的工作,現在我想要做的字節和字符和失敗。
的logcat中提供了以下錯誤: 9月10日至28日:27:19.338:E/AndroidRuntime(13138):android.content.res.Resources $ NotFoundException:字符串資源ID#爲0x0
Beloww是onClick lisener代碼:
@Override
public void onClick(View v) {
// Control value
ArrayOutput[0] = 'B';
ArrayOutput[1] = 'B';
//Creating TextView Variable
TextView text = (TextView) findViewById(R.id.tv);
//Creating TextView Variable
TextView statustext = (TextView) findViewById(R.id.status);
//Sets the new text to TextView (runtime click event)
text.setText("You Have click the button");
// Convert string to bytes
ArrayOutput[0] = ArrayRecieved[0];
ArrayOutput[1] = ArrayRecieved[1];
final char Byte1 = (char) ArrayOutput[0];
final char Byte2 = (char) ArrayOutput[1];
final TextView Xtext = (TextView) findViewById(R.id.xtext);
final TextView Ytext = (TextView) findViewById(R.id.ytext);
Ytext.setText(Byte1);
Xtext.setText(Byte2);
try
{
statustext.setText("Sending....");
server.send(ArrayOutput);
statustext.setText("Sending succes");
}
catch (IOException e)
{
statustext.setText("Sending failed");
Log.e("microbridge", "problem sending TCP message", e);
}
}
});
有沒有人有消化的問題可能是什麼?歡迎任何建議!如果我需要提供更多信息,請這樣說。
更新
謝謝大家的建議!對於onclick函數,它的工作原理!我試圖爲接收功能做同樣的事情。當有數據可用時,會調用此事件處理程序函數。
當我使用setText函數在幾個週期後崩潰我的ap,在這個函數中我有三個settext操作。只有第一個被調用(然後應用程序崩潰)。當我改變這些操作的時候,仍然只有第一個被調用。它可能是應用程序顯示第一個settext操作,但崩潰?我使用虛擬數據,所以當調用eventhandler函數時,實際接收到的數據不會被使用,但仍然會在第一次操作後崩潰。有人有消氣嗎?
另一方面,數據每秒發送一次。
下面是onRecieve(事件處理)函數:
@Override
public void onReceive(com.example.communicationmodulebase.Client client, byte[] data)
{
Log.e(TAG, "In handler!");
//Control value
ArrayRecieved[0] = 'C';
ArrayRecieved[1] = 'B';
if (data.length < 2){
return;
}
// Set data that has been recieved in array
//ArrayRecieved[0] = data[0];
//ArrayRecieved[1] = data[1];
char Byte1 = (char) ArrayRecieved[0] ;
char Byte2 = (char) ArrayRecieved[1] ;
TextView Xtext = (TextView) findViewById(R.id.xtext);
TextView Ytext = (TextView) findViewById(R.id.ytext);
Xtext.setText(""+Byte2);
Ytext.setText(""+Byte1);
TextView textRecvStatus = (TextView) findViewById(R.id.RecvStatusText);
textRecvStatus.setText("In handler!");
}
});
我已經更新我的職務和我收到的功能。當我評論所有的settext操作時,應用程序不會崩潰。感謝您使用我的發送代碼上的插件。 – Roy08