あるアクティビティでユーザーから取得したデータを別のアクティビティで表示する方法についてのチュートリアルに出くわし、(非常に限られた知識から)自分のバージョンを考え出そうとしました。
これは、を介してデータを受け入れる最初のアクティビティのコードです。
package kk.screen;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class ScreenActivity extends Activity {
/** Called when the activity is first created. */
EditText inputName;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void btnclick(View view) {
inputName = (EditText)findViewById(R.id.name);
Intent nextscreen = new Intent(this, newscreen.class);
//Sending value to the next activity
nextscreen.putExtra("name",inputName.getText().toString());
startActivity(nextscreen);
}
}
そして、IDが「btnclick」であるボタンをクリックするとアクティブ化される次のアクティビティのコードは次のとおりです。
package kk.screen;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class newscreen extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newscreen);
TextView txtName = (TextView) findViewById(R.id.txtName);
Intent i=getIntent();
//Receiving the data
String name = i.getStringExtra("name");
//Display received data
txtName.setText(name);
}
}
問題は、ボタンをクリックするとアプリがクラッシュし、ホーム画面に戻ることです。
何が問題なのか?OnClickListener()を使用する必要がありますか?(それが私のアプローチとチュートリアルのアプローチの大きな違いのようです)