如何显示EditText中的文本?

时间:2011-12-18 20:36:54

标签: java android textview android-edittext

好的,我正在使用代码:

EditText editText = (EditText) findViewById(R.id.editText1);
String value = editText.getText().toString();

从EditText获取文本,但如何使用TextView显示它?此外,如果TextView位于不同的Activity中,代码将如何更改?

像这样:

enter image description here

好吧,我试过这样做:

    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);

6 个答案:

答案 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;
            }
        });
    }
}

您应该使用代码常量

替换代码中的所有硬编码字符串文字