繁体   English   中英

如何显示 EditText 中的文本?

[英]How do I display text from an EditText?

好的,我正在使用代码:

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

但是我在这一行收到错误“未定义字符串类型的方法 setText(String)”:

text.setText(thing);

您可以安装文本更改侦听器

有关如何将其添加到编辑文本,请参见此处 而不是渲染你然后做textField.setText(text);

要做到这一点,你需要从编辑视图中获取文本并设置文本视图:这是使用预定义的getter和setter的小菜一碟。

您需要像对EditText一样对文本视图进行膨胀,然后使用.setText方法

如果textview在新活动中,则需要通过意图中的信息发送,例如:

startActivity(new Intent(AndroidActivity.this, Activity2.class).putExtra("user", user.getText().toString()));

然后在你的新活动中,它可以被检索为

String s = getIntent().getStringExtra("user")

您可以使用此代码在 EditText 中创建显示文本

<EditText
    android:text="Your name"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="15dp"
    android:layout_width="380dp"
    android:layout_height="wrap_content"/>

结果编辑文本

回答问题1:

使用TextView.setText(CharSequence text, TextView.BufferType type)使文本视图显示所需的文本。

用于解决此特定错误的用法

display.setText(thing);

目前你正在将字符串设置为另一个字符串,并且没有像string的settext那样可用的函数。 此外,如果您希望在运行中进行此操作(当用户放入文本时更新textview),请使用文本观察器。

为edittext定义一个事件处理程序,每当它的文本发生更改时提取它并执行display.setText()

我希望有所帮助

如何使用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,并在值中显示 Activity的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;
            }
        });
    }
}

您应该使用代码常量替换我的代码中的所有硬编码字符串文字

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM