为了账号安全,请及时绑定邮箱和手机立即绑定

如何自动将 textview 的值分配给字符串

如何自动将 textview 的值分配给字符串

30秒到达战场 2022-06-23 10:26:53
我想自动将editext值分配给字符串当我单击它分配但不是自动分配的按钮时private void OverValidation()    {        if (!noOfOvers.equals("0"))        {            noOfOvers=chooseOverEdttext.getText().toString();        }        else        {            Toast.makeText(getActivity(), "Please choose no of overs", Toast.LENGTH_SHORT).show();        }    }我想当我在编辑文本中键入文本时,它同时为字符串赋值
查看完整描述

4 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

您可以尝试使用数据绑定库。它具有连接视图和数据源的功能。


例如,您可以在 Activity 中有一个 ObservableString:


ObservableField<String> noOfOvers = new ObservableField<String>()


然后,在你的 xml 中,你应该添加一个绑定到这个数据:


<layout 

  xmlns:android=”http://schemas.android.com/apk/res/android"

  xmlns:tools=”http://schemas.android.com/tools">

  <data>

    <import type="android.databinding.ObservableField"/>

    <variable name="noOfOvers" type="ObservableField<String>"

  </data>

  <LinearLayout

    android:layout_width=”match_parent”

    android:layout_height=”match_parent”

    android:orientation=”vertical”>

    <EditText

      android:layout_width=”match_parent”

      android:layout_height=”wrap_content”

      android:text=”@{noOfOvers}”/>

  </LinearLayout>

</layout>

现在,一旦您在 EditText 中进行了更改,它的值将自动分配给 noOfOvers 变量。


查看完整回答
反对 回复 2022-06-23
?
精慕HU

TA贡献1845条经验 获得超8个赞

您可以将更改侦听器添加到您的 edittext 然后将字符串设置为您的 edittext 或其他


youredittext.addTextChangedListener(new TextWatcher() {


 @Override

 public void afterTextChanged(Editable s) {}


 @Override    

 public void beforeTextChanged(CharSequence s, int start,

 int count, int after) {

 }


 @Override    

   public void onTextChanged(CharSequence s, int start,

   int before, int count) {

    if(s.length() != 0)

    field2.setText("");

 }

 });


查看完整回答
反对 回复 2022-06-23
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

您可能想要使用TextView#addTextChangedListener(文档)。

这很容易。


chooseOverEdttext.addTextChangedListener(

   new TextWatcher() {

      @Override

      public void onTextChanged(

              final CharSequence text,

              final int start, 

              final int before, 

              final int count) {

         final String noOfOvers = text.toString();

         // Process your String, or use CharSequence directly

      }


      @Override

      public void beforeTextChanged(

              final CharSequence text, 

              final int start, 

              final int count, 

              final int after) { }


      @Override

      public void afterTextChanged(final Editable editable) {

         // Editable represents the changed text. If you need to process

         // the inserted text and modify it, you can apply these modifications

         // here, directly to the Editable instance. Be carefult as it might be called recursively.

      }

   }

);

如果您经常使用TextWatcher(s),您可能还想创建一个Adapter,这是一个将这三种方法实现为无操作的基类。然后你将能够只覆盖你感兴趣的那个。更干净!


查看完整回答
反对 回复 2022-06-23
?
温温酱

TA贡献1752条经验 获得超4个赞

您可以通过将 textchangeListner 添加到 editText 来实现。


这是您的代码的正确实现:


 chooseOverEdttext.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) {

            setString();


        }


        @Override

        public void afterTextChanged(Editable editable) {


        }

 });


  private void setString(){

    String overs=chooseOverEdttext.getText().toString(); 

    if (!(TextUtils.isEmpty(overs)||overs.equals("0")))

    {

        noOfOvers=overs;

    }



  }

只需复制并粘贴此代码代替您当前的代码


查看完整回答
反对 回复 2022-06-23
  • 4 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信