2

AndroidアプリケーションのSpinnerから値を取得し、それを文字列に変換して、バンドル内のデータアイテムとして別のアクティビティに移動できるようにしようとしています。メソッドの組み合わせを使用して、EditText値を移動することに成功しましたgetText().toString();。私は同じ結果を探していますが、現在スピナーアイテムを使用していますが、これまでのところ成功していません。

コードは次のとおりです。

onClickこのメソッドは、ユーザーがメソッド内のボタンを選択したときに呼び出されます。

public void commitData(){
    Bundle bundle = new Bundle();
    bundle.putString("key", txtBuildingName.getText().toString()); //Gets the TEXT that the TEXTVIEW was holding converts it to a String and adds to the Extras bundle

    Bundle bundle1 = new Bundle();
    bundle1.putString("key1", txtDescription.getText().toString()); // Same again

    Bundle bundle2 = new Bundle();
    bundle2.putString("key2", type.getItemAtPosition(type.getSelectedItemPosition()).toString());

    Bundle bundle3 = new Bundle();
    bundle3.putString("key3", project.getItemAtPosition(project.getSelectedItemPosition()).toString());

    Intent newIntent = new Intent(this.getApplicationContext(), DataSummary.class);
    newIntent.putExtras(bundle);
    newIntent.putExtras(bundle1);
    startActivityForResult(newIntent, 0);
}

プロジェクトから結果が得られず、プロジェクトでtype.getItemAtPosition().getSelectedItemPosition()).toString();同じコードを使用してコード行を入力します。

以下に示すのは、入力フォームからこのデータを受信して​​出力するアクティビティのコードです。

TextView resultName; TextView resultDescription; TextView resultType; TextView resultProject;

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState); 
   setContentView(R.layout.activity_data_summary);

   //Check if there is anything in the 'bundle' and if not produce message - AVOIDS NULLPOINTEREXCEPTION when navigating to Activity
   Bundle bundle = this.getIntent().getExtras();     
   if (bundle != null){       
   String name = bundle.getString("key");
   String description = bundle.getString("key1"); //gets data from DataEntry activity
   String type = bundle.getString("key2");
   String project = bundle.getString("key3");

   resultName=(TextView)findViewById(R.id.resultName);  //adds the TextViews to the activity
   resultType=(TextView)findViewById(R.id.resultType);
   resultDescription=(TextView)findViewById(R.id.resultDesc);
   resultProject=(TextView)findViewById(R.id.resultProject);

   resultName.setText(name); // Fills the textviews with imported data
   resultType.setText(type);
   resultDescription.setText(description);
   resultProject.setText(project);
   }    

   else
   {
       Toast.makeText(DataSummary.this,"Received no data yet!", Toast.LENGTH_LONG).show();
   }

}

スピナーアイテムからデータをうまく収集する方法を知っている人はいますか?

4

1 に答える 1

4

なぜ異なるバンドルを渡すのですか?受信アクティビティの側では、最初のバンドルしか取得していないと思います。

これらの編集でコードを試してください:

public void commitData(){

    Bundle bundle = new Bundle();
    bundle.putString("key", txtBuildingName.getText().toString()); //Gets the TEXT that the TEXTVIEW was holding converts it to a String and adds to the Extras bundle
    bundle.putString("key1", txtDescription.getText().toString()); // Same again
    bundle.putString("key2", type.getItemAtPosition(type.getSelectedItemPosition()).toString());
    bundle.putString("key3", project.getItemAtPosition(project.getSelectedItemPosition()).toString());
于 2012-09-14T14:59:52.903 に答える