好的,我正在使用代码:
EditText editText = (EditText) findViewById(R.id.editText1);
String value = editText.getText().toString();
从EditText获取文本,但如何使用TextView显示它?此外,如果TextView位于不同的Activity中,代码将如何更改?
像这样:
好吧,我试过这样做:
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);
但是我得到一个错误“此行上的类型String的方法setText(String)未定义:
text.setText(thing);
答案 0 :(得分:1)
你可以,例如安装文本更改侦听器
参见例如here for how to add it to the edit text。而不是渲染,你会做textField.setText(text);
答案 1 :(得分:1)
要执行此操作,您需要从编辑视图中获取文本并设置文本视图: 这是使用预定义的getter和setter的小菜一碟。
您需要像对EditText一样对文本视图进行充气,然后使用.setText方法
如果textview在新活动中,您需要通过意图中的信息发送,例如:
startActivity(new Intent(AndroidActivity.this, Activity2.class).putExtra("user", user.getText().toString()));
然后在你的新活动中,它可以被检索为
String s = getIntent().getStringExtra("user")
答案 2 :(得分:0)
回答问题1:
使用TextView.setText(CharSequence text, TextView.BufferType type)
使文字视图显示所需的文字。
答案 3 :(得分:0)
解决此特定错误使用
display.setText(thing);
目前你正在将字符串设置为另一个字符串,并且没有像string的settext那样可用的函数。 此外,如果您希望即时发生(当用户放入文本时更新textview),请使用文本观察器。
答案 4 :(得分:0)
为edittext定义一个事件处理程序,每当它的文本更改时将其解压缩并执行display.setText()
我希望有帮助
答案 5 :(得分:0)
如何使用TextView显示它?
以下代码将更新显示(示例中使用的 TextView ),内容为输入( EditText 在你的例子中使用)每当在键盘上按下输入键时(我看到你在对另一个答案的评论中请求了这个):
// get reference to the TextView
final TextView display = (TextView) findViewById(R.id.textView1);
// get reference to EditText and set listener to update TextView
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)) {
display.setText(input.getText());
return true;
}
return false;
}
});
上面的代码在单个Activity中。
此外,如果TextView位于不同的Activity中,代码将如何更改?
如果显示(示例中的 TextView )在另一个Activity中,那么更新它的一种快捷方法是存储输入的值(示例中的 EditText )为SharedPreference并且显示活动的 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;
}
});
}
}
您应该使用代码常量
替换代码中的所有硬编码字符串文字