1

我想显示 TextView 像应用程序“Google Keep”一样可编辑,但是

  EditText text = (EditText)findViewById(R.id.edittext);
  String value = text.getText().toString();

没用

4

3 回答 3

5

你好,我做了一个例子,我认为你可以使用:

布局:

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

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:textColor="#FF0000"
    android:text="@string/hello_world" />

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

<Button
    android:id="@+id/getInfoButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="GET INFO" 
    android:layout_gravity="center_horizontal"
    />

</LinearLayout>

主要活动

package com.example.testedittext;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

private TextView info;
private EditText input;
private Button getInfo;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    info = (TextView) findViewById(R.id.textView);
    input = (EditText)findViewById(R.id.editText);
    getInfo = (Button)findViewById(R.id.getInfoButton);
    getInfo.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            String inputText = input.getText().toString();
            info.setText(inputText);
        }
    });

}


}

这是输出:

编辑文本示例

希望这会有所帮助,干杯

于 2013-08-25T14:50:17.410 回答
3

这是获取编辑文本字符串格式的文本的正确语法。

String "value" 的值现在实际上是 "" 因为你调用了

text.getText().toString(); 

在 EditText 文本被实例化后立即。正如你可以想象的那样,它被创建的那一刻,里面没有任何文本,所以这就是“value”有一个空字符串的原因。

如果您想在特定调用中检索 edittext 的值,我建议您在 xml 布局中添加一个按钮,并在您的代码中添加以下内容:

Button button = (Button) findViewById(R.id.somebutton);
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
     text.getText().toString();         
}

});

当您单击按钮时,这将获得 edittext 的当前字符串值。

于 2013-08-25T14:49:00.150 回答
0

您必须在其他地方使用值 String ,它会告诉您它未使用。然后,您必须在更改设置该 edittext 的值的时间点使用那段代码。

于 2013-08-25T14:56:23.043 回答