Textview大小需要根据用户在EditText中给定的值进行更改

时间:2017-11-17 17:39:22

标签: java android

根据用户输入动态更改TextView大小。如果用户更改了值,则textview需要更改

     et0=(EditText)findViewById(R.id.EditText0);
     bt = (Button)findViewById(R.id.btn);

     bt.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String text = ((et.getText().toString()));
                    float i=et0.getTextSize();

                    tv.setText(text);
                    tv.setTextSize(i) ; 
        }
    }

//problem is value is changing one time if edit again text size is not changing
any help advance thanks

4 个答案:

答案 0 :(得分:0)

尝试设置一个变量,以便它接受用户提供的任何内容,并将该值用作其设置的文本大小。那有意义吗?

答案 1 :(得分:0)

解决问题的一种方法是将侦听器附加到editText框。

以下是TextWatcher实施示例:

edittext.addTextChangedListener(new TextWatcher() {

   public void onTextChanged(CharSequence s, int start, int before,
        int count) {
       if(!s.equals("") )
            { //do your work here }
       }

   }

   public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {

   }

   public void afterTextChanged(Editable s) {

   }
});

您可以在onTextChanged内进行一些尺寸检查。一旦达到某个断点,就会增加文本的大小。 : - )

答案 2 :(得分:0)

要将textView文本大小更改为等于editText输入值,请使用以下命令:

 bt.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String text = ((et.getText().toString()));  //number input

                    Float f= Float.parseFloat(text);  // setting the input number as textview text size
                    tv.setText(text);
                    tv.setTextSize(f) ; 
        }
    }

注意:editText输入值必须是数字

答案 3 :(得分:0)

在你的xml中

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/edtText"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/txtOutput"/>

并在edittext上实现textwatcher

      edtText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                txtOutput.setText(charSequence.toString());
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });