1

スタックオーバーフローの例をここで見てきました。ただし、正しく機能するソリューションを取得できません。アプリケーションがまだクラッシュします。あるアクティビティの編集テキストから別のアクティビティに文字列を渡すにはどうすればよいですか?

これは最初のアクティビティからの私のコードです:

Button btnGo = (Button) findViewById(R.id.btnGo);

btnGo.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        EditText etLocation = (EditText) findViewById(R.id.et_location);
        Intent intent = new Intent();
        intent.putExtra("location", etLocation.getText().toString());
        startActivity(intent);
    }
}

2 番目のアクティビティのコード:

textView1 = (TextView) findViewById(R.id.textView1);

Intent intent = getIntent();
String str = intent.getStringExtra("location");
textView1.setText(str);
4

4 に答える 4

7

変化する:

Intent intent = new Intent();

に:

Intent intent = new Intent(MyCurrentActivityClass.this, NextActivity.class);

NextActivity がマニフェストにあることを確認します。最初のケースでは、アクティビティを開始するのに十分な情報を提供していません。

于 2013-08-28T07:16:30.970 に答える
4

これを試して:

最初のアクティビティから、次のように送信します。

btnGo.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        EditText etLocation = (EditText) findViewById(R.id.et_location);
       Intent i = new Intent(this, ActivityTwo.class);
        i.putExtra("location", etLocation.getText().toString());      
        startActivity(i);
}
});

2 番目のアクティビティでは、次のようにします。

Intent in = getIntent();
String tv1= in.getExtras().getString("location");
textView1.setText(tv1);
于 2013-08-28T07:22:07.010 に答える
3

この方法で 2 番目のアクティビティから情報を取得する必要があります。

Bundle extras = getIntent().getExtras();
String myLocation= extras.getString("location");
于 2015-06-02T20:20:28.533 に答える
0

変数 textview1 を宣言しましたか? 変化する

textView1 = (TextView) findViewById(R.id.textView1); に

TextView textView1 = (TextView) findViewById(R.id.textView1);

于 2014-06-30T01:20:40.363 に答える