如何显示来自一个EditText文字? [英] How do I display text from an EditText?

查看:167
本文介绍了如何显示来自一个EditText文字?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好吧,我使用的是code:

 的EditText EDITTEXT =(EditText上)findViewById(R.id.editText1);
字符串值= editText.getText()的toString()。

要得到一个EditText文字,但我怎么得到它与一个TextView显示?此外,如何将code修改,如果TextView的是在不同的活动?

这样的:

好吧,我试着这样做:

 的EditText输入=(EditText上)findViewById(R.id.editText1);
    字符串的东西= input.getText()的toString()。    TextView中显示=(的TextView)findViewById(R.id.textView1);
    字符串文本= display.getText()的toString()。    text.setText(事);

不过,我得到一个错误的方法的setText(字符串)是不确定的String类型在这条线:

  text.setText(事);


解决方案

  

我如何得到它与一个TextView显示?


下面是code将更新的显示输入的内容(在您的示例使用的的TextView 的)(即<时间在你的示例中使用>的EditText 的),只要回车键是pssed键盘上$ p $(我看见你这要求在评论到另一个答案):

  //获取参考的TextView
    最终的TextView显示=(的TextView)findViewById(R.id.textView1);    //获取引用的EditText并设置监听器来更新的TextView
    最终的EditText输入=(EditText上)findViewById(R.id.editText1);
    input.setOnKeyListener(新OnKeyListener(){
        @覆盖
        公共布尔安其(视图V,INT键code,KeyEvent的事件){
            如果((event.getAction()== KeyEvent.ACTION_DOWN)及&放大器;
                    (关键code == KeyEvent.KEY code_ENTER)){
                  display.setText(input.getText());
                  返回true;
                }
                返回false;
        }
    });

$ C $上面c是一个单一的活动中。


  

此外,如何将code修改,如果TextView的是在不同的活动?


如果显示(即的TextView 的在你的例子)是另外一个活动,再一个快速的方法来更新它是存储的输入值(即的EditText )作为的共享preference 并拥有的显示活动的 onResume 的中值读取:

  //带显示活动
公共类DisplayActivity延伸活动{
    私人TextView中显示;    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);        //获取参考的TextView
        显示=(的TextView)findViewById(R.id.textView1);
    }    公共无效onResume(){
        super.onResume();
        字符串inputsValue = getShared preferences(我的preFS,0)
                .getString(输入,/ **默认值* /);        display.setText(inputsValue);
    }
}//与输入活动
公共类InputActivity延伸活动{
    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);        //得到共享preference参考的EditText和存储
        最终的EditText输入=(EditText上)findViewById(R.id.editText1);
        input.setOnKeyListener(新OnKeyListener(){
            @覆盖
            公共布尔安其(视图V,INT键code,KeyEvent的事件){
                如果((event.getAction()== KeyEvent.ACTION_DOWN)及&放大器;
                        (关键code == KeyEvent.KEY code_ENTER)){
                      getShared preferences(我的preFS,0).edit()
                          .putString(输入,input.getText()的toString())提交()。
                      返回true;
                }
                返回false;
            }
        });
    }
}

您应该用code常数代替我的code辛勤codeD字符串

Ok, I'm using the code:

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

to get text from an EditText, but how do I get it to display with a TextView? Also, how will the code change if the TextView is in a different Activity?

Like this:

Well, I tried doing this:

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

But I get an error "The method setText(String) is undefined for the type String" on this line:

text.setText(thing);

解决方案

how do I get it to display with a TextView?

Here is code which will update display (the TextView used in your example) with the contents of input (the EditText used in your example) whenever enter key is pressed on the keyboard (I saw you requested this in a comment to another Answer):

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

Code above is inside of a single Activity.

Also, how will the code change if the TextView is in a different Activity?

If display (the TextView in your example) is in another Activity, then one quick way to update it is to store the value of input (the EditText in your example) as a SharedPreference and have display Activity's onResume read in the value:

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

You should replace all hardcoded string literals in my code with a code constant

这篇关于如何显示来自一个EditText文字?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆