次の段落をレイアウトに追加しました。
レイアウト:
<EditText
android:id="@+id/EditTextEmissionDetails"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="top"
android:hint="Emission Details"
android:scrollbarStyle="insideOverlay"
android:isScrollContainer="true">
</EditText>
この段落では、最初の ("0") と 2 番目の (x、b、d) 文字をチェックして、入力がテキストまたは 16 進数、2 進数、10 進数であったかどうかを示し、その結果が新しく追加されたことを示します。レイアウト部分。
ジャワ:
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import java.io.IOException;
public class ConsoleActivity extends SerialPortActivity {
String dataformat;
EditText mReception;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.console);
mReception = (EditText) findViewById(R.id.EditTextReception);
EditText Emission;
Emission = (EditText) findViewById(R.id.EditTextEmission);
EditText EmissionDetails;
EmissionDetails = (EditText) findViewById(R.id.EditTextEmissionDetails);
Emission.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
int i;
CharSequence t = v.getText();
char[] text = new char[t.length()];
for (i=0; i<t.length(); i++) {
text[i] = t.charAt(i);
dataformat = "text";
if (text[0] == '0') {
System.out.println("I got a Zero");
if (text[1] == 'b') {
dataformat = "binary";
}
if (text[1] == 'd') {
dataformat = "decimal";
}
if (text[1] == 'x') {
dataformat = "hex";
}
}
EmissionDetails = "Dataformat " + text[0] + text[1] + " is " + dataformat;
}
try {
mOutputStream.write(new String(text).getBytes());
mOutputStream.write('\n');
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
});
}
Android-Studio ループの赤いランプが示すように、何を試しても、遅かれ早かれ最初に戻ります。
16 進データ ("0x" で始まる) が入力されている場合、文だけを表示するにはどうすればよいですか: "Dataformat 0x is hex"