在尝试使TextView显示我在EditText中编写的内容时,我做错了什么?

时间:2013-06-10 19:00:53

标签: android

public class MainActivity extends Activity {

public final static String EXTRA_MESSAGE = "com.example.realapptest1.MESSAGE";

TextView test;
EditText edittext;
String spokenwordstring;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    test = (TextView)findViewById(R.id.textView2);
    edittext = (EditText)findViewById(R.id.spokenmsg);
    spokenwordstring = edittext.getText().toString();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}


public void registermessage(View view) {
    test.setText(spokenwordstring);

}

基本上我试图用上面的代码在TextView上的EditText中显示我写的内容但是我没有成功。

感谢任何帮助!

4 个答案:

答案 0 :(得分:0)

尝试以下方法:

public void registermessage(View view) {
  spokenwordstring = edittext.getText().toString(); //remove this from onCreate
  test.setText(spokenwordstring);
}

当您将spokenwordstring = edittext.getText().toString();放入onCreate时,您将在创建时保存EditText的值,该值为空。

答案 1 :(得分:0)

当您在EditText中输入一些文字时,您的变量spokenwordstring将无法更新。该变量未绑定到EditText中的值。

要实现这一目标,您需要在getText()上执行EditText。 试试这个。

public void registermessage(View view) {
  spokenwordstring = edittext.getText().toString();
  test.setText(spokenwordstring);
}

答案 2 :(得分:0)

您在o spokenwordstring = edittext.getText().toString();方法中呼叫onCreate。这样做的问题是信息尚未输入EditText。因此,在调用registerMessage()之前,请从方法setText调用该行。

答案 3 :(得分:0)

你说有一个按钮可以工作,但我没有在你的代码中看到它。作为替代方案,您可以在EditText中添加OnKeyListener,并在用户使用方向键或点击回车键时使用它来更新TextView。 (您必须检查侦听器中的键代码。)