3

我正在尝试将在一个活动的 EditText 中键入的信息发送到另一个活动,然后将其显示在 TextView 中。

发送信息的代码:

EditText ed = (EditText)findViewById(R.id.soeg_vare);
String s = ed.getText().toString();

public void onClick(View v)
{
    Intent myIntent = new Intent(Vare.this, Vare_resultat.class);
    myIntent.putExtra("SOEG_VARE",s);
    startActivity(myIntent);
}       

接收信息的代码:

Intent i = getIntent();
String var = i.getStringExtra("SOEG_VARE");
int convert = Integer.parseInt(var);
4

3 回答 3

0

当您调用时,您的 EditText 可能仍然为空

String s = ed.getText().toString();

尝试这个:

EditText ed = (EditText)findViewById(R.id.soeg_vare);

public void onClick(View v){
    String s = ed.getText().toString();
    Intent myIntent = new Intent(Vare.this, Vare_resultat.class);
    myIntent.putExtra(s, s);
    startActivity(myIntent);
}     

接收信息的代码:

String s = "";
s = getIntent().getExtras().getString(s);
int convert = Integer.parseInt(s);
于 2013-05-24T22:12:51.857 回答
0

您应该在 onClick 方法中移动这一行:

String s = ed.getText().toString();

现在 s 在您初始化 editText 的同时被设置,并且在按下按钮时不再被查看。

于 2013-05-24T21:00:22.617 回答
0

原始提问者的解决方案

发送的代码:

private void addButtonListener() {
    final Button soeg = (Button) findViewById(R.id.soeg);
    final EditText ed = (EditText) findViewById(R.id.soeg_vare);
    soeg.setOnClickListener(new View.OnClickListener() {            
        @Override
        public void onClick(View v) {
            Intent send_soeg = new Intent(Vare.this, Vare_resultat.class);
            String s = ed.getText().toString();
            send_soeg.putExtra("SEND_SØG", s);
            startActivity(send_soeg);
        }
    });
}

接收代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_vare_resultat);        
    TextView modtag_soeg = (TextView) findViewById(R.id.modtag_soeg);
    modtag_soeg.setText("Du søgte efter " + getIntent().getExtras().getString("SEND_SØG"));
}
于 2017-01-31T02:03:28.290 回答