Отображение результата теста в дополнительном EditText

#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: Строка