Как установить множественное значение из EditText в 1 Textview и автоматически показать без нажатия кнопки - PullRequest
0 голосов
/ 08 июля 2019

Можно ли установить несколько из EditText на 1 Textview и автоматически показывать без нажатия любой кнопки.Вот пример XML.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/labelnim"
            android:layout_marginTop="7dp"
            android:text="Name :"
            android:textSize="18sp" />


        <EditText
            android:id="@+id/name"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="text" >

        </EditText>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/labelnama"
            android:layout_marginTop="25dp"
            android:text="Spesification"
            android:textSize="18sp" />


        <EditText
            android:id="@+id/spesification"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:inputType="text"
            >

        </EditText>

           <TextView
           android:id="@+id/TextView Output"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/labelnama"
            android:layout_marginTop="25dp"
            android:text="Output"
            android:textSize="18sp" />



</LinearLayout>

Я хочу, чтобы данные отображались в TextViewOutput как с Name + Specification.Кроме того, когда я печатаю, вывод автоматически меняется на всякий раз, когда я набираю Оба EditText

Ответы [ 3 ]

0 голосов
/ 08 июля 2019

Трудно поддерживать два разных вывода addOnTextChangeListerner's в одном и том же textView, поэтому лучше Заменить раздел макета на -

  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/labelnama"
    android:orientation="horizontal">

<TextView
    android:id="@+id/textView_Output1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="25dp"
    android:layout_marginRight="2dp"
    android:text="Output"
    android:textSize="18sp" />

    <TextView
        android:id="@+id/textView_Output2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="25dp"
        android:text=""
        android:textSize="18sp" />

</LinearLayout>

и применить addTextChangedListener к обоим editText и установите их выходные данные в соответствующих TextViews ... как это

    final EditText nameEditText = (EditText) findViewById(R.id.name);
    final EditText spesificationEditText = (EditText) findViewById(R.id.spesification);
    final TextView textViewOutput1 = (TextView) findViewById(R.id.textView_Output1);
    final TextView textViewOutput2 = (TextView) findViewById(R.id.textView_Output2);

    nameEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            String name = nameEditText.getText().toString();
            if(name!=null){
                textViewOutput1.setText(name);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

    spesificationEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            String specification = spesificationEditText.getText().toString();
            if(specification!=null){
                textViewOutput2.setText(specification);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

}
0 голосов
/ 08 июля 2019

спасибо за помощь.Вы все такой удивительный человек.Вот код

Первые 2 или более значения из EditText показывают в 1 Textview

TextView output.setText(Name.getText().toString()+"-"+Spesicification.getText().toString()"-"+MoreOuput.getText().toString());

И для автоматического текста вы правы с TextWatcher


 Name.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            String name = NamaAlat.getText().toString();
            if(name!=null){
                TextView output.setText(Name.getText().toString()+"-"+Spesicification.getText().toString()"-"+MoreOuput.getText().toString());
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

    Spesification.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            String spek = NamaAlat.getText().toString();
            if(spek!=null){
                TextView output.setText(Name.getText().toString()+"-"+Spesicification.getText().toString()"-"+MoreOuput.getText().toString());
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });



Спасибо вам такмного.

0 голосов
/ 08 июля 2019

Да, конечно, вы должны пользователь addTextChangedListener Следуйте приведенному ниже коду

editText.addTextChangedListener(new TextWatcher() {
   @Override
   public void beforeTextChanged(CharSequence s, int start, int count, int after) {
   }

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
  String editValue = editText.getText().toString();
  if(editValue.lenght!=0){
  String textValue = yourTextView.getText().toString();
  int val = Integer.parse(textValue);
  int edVal = Integer.parse(editValue);

  int result = edVal * val;

  resultText.setText(result);

  }

}

@Override
public void afterTextChanged(Editable s) {
}
});

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...