我想显示 TextView 像应用程序“Google Keep”一样可编辑,但是
EditText text = (EditText)findViewById(R.id.edittext);
String value = text.getText().toString();
没用
我想显示 TextView 像应用程序“Google Keep”一样可编辑,但是
EditText text = (EditText)findViewById(R.id.edittext);
String value = text.getText().toString();
没用
你好,我做了一个例子,我认为你可以使用:
布局:
<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);
}
});
}
}
这是输出:
希望这会有所帮助,干杯
这是获取编辑文本字符串格式的文本的正确语法。
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 的当前字符串值。
您必须在其他地方使用值 String ,它会告诉您它未使用。然后,您必须在更改设置该 edittext 的值的时间点使用那段代码。