【问题标题】:Edittext can not be converted to stringEdittext 无法转换为字符串
【发布时间】:2018-02-19 09:42:35
【问题描述】:

我使用 EditText 为批评和建议创建了一条消息,该消息将使用意图电子邮件发送,但是当我拿起消息时没有结果。

我拿了一串使用Edittext

message = msg_feedback.getText().toString();

如果我直接使用

message = msg_feedback.toString();

然后出现在下面的日志中

android.support.v7.widget.AppCompatEditText{2bd670a VFED..CL. ......一世。 0,0-0,0 #7f0f00ce app:id/msgFeedback}

按照他的完整代码

活动

@InjectView(R.id.msgFeedback)
EditText msg_feedback;

String message;

message = msg_feedback.getText().toString();

布局

<EditText
    android:id="@+id/msgFeedback"
    android:layout_width="344dp"
    android:layout_height="190dp"
    android:ems="10"
    android:inputType="textMultiLine"
    android:singleLine="false"
    android:maxLines="9"
    android:lines="9"
    android:maxLength="397"
    android:gravity="top"
    android:fitsSystemWindows="true"
    android:breakStrategy="balanced"
    android:layout_marginLeft="8dp"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_marginTop="8dp"
    app:layout_constraintTop_toBottomOf="@+id/nohpFeedback" />

【问题讨论】:

  • 你需要什么?你有什么问题?
  • 所以 getText() 调用什么也不返回?如果你 toString() 视图本身,你会得到对象的名字。

标签: android string android-edittext


【解决方案1】:

您可以使用这种方法从 editext 获取消息作为字符串。

message = msg_feedback.getText().toString();

现在您可以将消息用作字符串,这将是编辑文本中的文本。

这里是message = msg_feedback.toString(); 你实际上将 EditText 的名称作为字符串获取。

【讨论】:

  • 发布您使用此字符串的位置。
  • 是的,问题确实存在,但现在解决了
【解决方案2】:

如果我直接使用

message = msg_feedback.toString();

你为什么要使用它?这不是直接的方式,但这是不正确的方式。这不会给你EditText包含的文本,它会调用EditText对象的toString()

所以下面的方法是正确的,你已经在使用了

message = msg_feedback.getText().toString();

【讨论】:

    【解决方案3】:

    EditText 是一个类,msg_feedbackEditText 的实例或对象

    getText()EditText 的一个方法,它返回 CharSequence

    toString()String类的方法,toString()用于将objcet转换为String

    如果您直接将EditText 对象转换为字符串对象,则返回对象引用和有关EditText 的信息

    仔细看。这是你的输出..

    android.support.v7.widget.AppCompatEditText{//Class Info
        2bd670a VFED..CL. ......I. 0,
        0-0,
        0 
        #7f0f00ce 
        app:id/msgFeedback //EditText ID
    }
    

    不是 EditText 中的文本。 所以如果你想在EditText 中输入文字,你必须使用

    msg_feedback.getText().toString();
    

    你明白吗?如有任何疑问,请随时提出。

    【讨论】:

      【解决方案4】:

      这段代码是正确的

      message = msg_feedback.getText().toString();
      

      对不起,一切都证明是我的粗心,这与实际的转换无关。 但是字符串访问的问题,我调用的功能键忘记改变它的访问了。

      【讨论】:

        猜你喜欢
        • 2018-11-26
        • 1970-01-01
        • 2012-09-19
        • 1970-01-01
        • 1970-01-01
        • 2021-11-15
        • 2012-01-07
        • 2018-06-15
        • 2016-03-11
        相关资源
        最近更新 更多