#android #dataformat
#Android #формат данных
Вопрос:
Я добавил в свой макет следующий абзац:
Макет:
<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») и второй (x, b, d) символ, а затем показать этот результат в новой добавленной части макета.
Java:
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, рано или поздно возвращается к началу.
Что я должен попытаться настроить для отображения только предложения, если введены шестнадцатеричные данные (начиная с «0x»): «Формат данных 0x равен шестнадцатеричному»
Комментарии:
1. Так что же именно происходит? Что говорит ваш журнал, вы переходите в if?
Ответ №1:
EmissionDetails.setSingleLine(true) by programatically
or
do by xml
<EditText
android:id="@ id/EditTextEmissionDetails"
android:singleline="true"
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>
Комментарии:
1. Я добавил строку в xml и получил: Ошибка: (30) Идентификатор ресурса не найден для атрибута ‘singleline’ в пакете ‘android’, как это исправить?
2. поместите так android: singleLine=»true»
3. Я попробовал android: singleLine=»true» и получил сейчас: Ошибка: (66, 21) ошибка: доступ к локальной переменной EmissionDetails осуществляется из внутреннего класса; необходимо объявить окончательную ошибку: (66, 82) ошибка: требуются несовместимые типы: найден EditText: Строка