Java 如何显示EditText中的文本?
好的,我正在使用代码:Java 如何显示EditText中的文本?,java,android,textview,android-edittext,Java,Android,Textview,Android Edittext,好的,我正在使用代码: EditText editText = (EditText) findViewById(R.id.editText1); String value = editText.getText().toString(); 从EditText获取文本,但如何使其显示在TextView中?另外,如果TextView处于不同的活动中,代码将如何更改 像这样: 我试过这样做: EditText input = (EditText) findViewById(R.id.edit
EditText editText = (EditText) findViewById(R.id.editText1);
String value = editText.getText().toString();
从EditText获取文本,但如何使其显示在TextView中?另外,如果TextView处于不同的活动中,代码将如何更改
像这样:
我试过这样做:
EditText input = (EditText) findViewById(R.id.editText1);
String thing = input.getText().toString();
TextView display = (TextView) findViewById(R.id.textView1);
String text = display.getText().toString();
text.setText(thing);
但是我在这一行中得到一个错误“类型字符串的方法setText(字符串)未定义”:
text.setText(thing);
对问题1的答复:
使用
TextView.setText(CharSequence text,TextView.BufferType)
使文本视图显示所需的文本 例如,您可以安装文本更改侦听器
见例。然后执行
textField.setText(text),而不是呈现代码>要执行此操作,您需要从编辑视图获取文本并设置文本视图:
使用预定义的getter和setter是小菜一碟
您需要像对EditText所做的那样膨胀文本视图,然后使用.setText方法
如果textview处于新活动中,则需要在intent中发送信息,例如:
startActivity(new Intent(AndroidActivity.this, Activity2.class).putExtra("user", user.getText().toString()));
然后在你的新活动中,它可以作为
String s = getIntent().getStringExtra("user")
要解决此特定错误,请使用
display.setText(thing);
当前,您正在将字符串设置为另一个字符串,并且没有像settext for string这样的函数可用。
另外,如果您希望这种情况在运行中发生(当用户输入文本时更新textview),请使用文本监视程序进行此操作。为edittext定义事件处理程序,每当其文本发生更改时,将其提取并显示。setText()
我希望这有帮助
如何让它以文本视图显示
下面是一段代码,每当按下键盘上的[strong>回车键[strong>(我看到您在对另一个答案的评论中要求这样做)时,该代码将使用[strong>输入[strong>(示例中使用的编辑文本)的内容更新显示[strong>(示例中使用的文本视图):
上面的代码位于单个活动中
另外,如果TextView处于不同的活动中,代码将如何更改
如果display(示例中的文本视图)在另一个活动中,则更新它的一种快速方法是将输入的值(示例中的编辑文本)存储为,并将display活动的onResume读取为值:
// Activity with display
public class DisplayActivity extends Activity {
private TextView display;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// get reference to the TextView
display = (TextView) findViewById(R.id.textView1);
}
public void onResume() {
super.onResume();
String inputsValue = getSharedPreferences("myprefs", 0)
.getString("input", "" /** Default value*/);
display.setText(inputsValue);
}
}
// Activity with input
public class InputActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// get reference to EditText and store in SharedPreference
final EditText input = (EditText) findViewById(R.id.editText1);
input.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
getSharedPreferences("myprefs", 0).edit()
.putString("input", input.getText().toString()).commit();
return true;
}
return false;
}
});
}
}
您应该用代码常量替换我代码中所有硬编码的字符串文字这不是每次用户更改文本时更新布局的好主意。。。文本更改可以在键入时非常快地触发,尤其是在使用退格删除字符时。最好在用户准备好更新布局时有一个按钮进行更新。那么,当用户按return/enter时,如何让它进行更新呢?
// Activity with display
public class DisplayActivity extends Activity {
private TextView display;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// get reference to the TextView
display = (TextView) findViewById(R.id.textView1);
}
public void onResume() {
super.onResume();
String inputsValue = getSharedPreferences("myprefs", 0)
.getString("input", "" /** Default value*/);
display.setText(inputsValue);
}
}
// Activity with input
public class InputActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// get reference to EditText and store in SharedPreference
final EditText input = (EditText) findViewById(R.id.editText1);
input.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
getSharedPreferences("myprefs", 0).edit()
.putString("input", input.getText().toString()).commit();
return true;
}
return false;
}
});
}
}