根据用户输入动态更改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
答案 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) {
}
});