-1

Spinnerから情報を取得し、インテントを介して別のアクティビティに渡す際に問題があります。

EditTextインテントは、 からの文字列と からの項目を含むバンドルを送信しますSpinner

問題は、以下の行にあるためだと思いgetText()ます。ただし、この問題を解決する方法がわかりません。

String messagecolor = editTextcolor.getText().toString();

誰が問題が何であるかについての洞察を提供できますか?

 package com.example.myfirstapp;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemSelectedListener;
    import android.widget.ArrayAdapter;
    import android.widget.EditText;
    import android.widget.Spinner;

    public class MainActivity extends Activity {
        public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
        public final static String EXTRA_MESSAGE_COLOR = "com.example.myfirstapp.MESSAGE2";

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            Spinner spinner = (Spinner) findViewById(R.id.spinner);
            // Create an ArrayAdapter using the string array and a default spinner layout
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                    R.array.color_array, android.R.layout.simple_spinner_item);
            // Specify the layout to use when the list of choices appears
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            // Apply the adapter to the spinner
            spinner.setAdapter(adapter);


        class SpinnerActivity extends Activity implements OnItemSelectedListener {
            public void onItemSelected(AdapterView<?> parent, View view, 
                    int pos, long id) {
                // An item was selected. You can retrieve the selected item using
                // parent.getItemAtPosition(pos)
            }

            public void onNothingSelected(AdapterView<?> parent) {
                // Another interface callback

            Spinner spinner = (Spinner) findViewById(R.id.spinner);
            spinner.setOnItemSelectedListener(this);
            }
        }
        }

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

    /** Called when the user clicks the Send button */
    public void sendMessage (View view)   {
        Intent i = new Intent(this, DisplayMessageActivity.class);
        EditText editText = (EditText) findViewById(R.id.edit_message);
        Spinner editTextcolor = (Spinner) findViewById(R.id.spinner);
        String message = editText.getText().toString();
        String messagecolor = editTextcolor.getText().toString();
        Bundle extras = new Bundle();
        extras.putString(EXTRA_MESSAGE, message);
        extras.putString(EXTRA_MESSAGE_COLOR, messagecolor );
        i.putExtras(extras);
        startActivity(i);

    }}  
4

1 に答える 1

1

おそらく直面している問題は、選択したアイテムの文字列を取得していないことです。あなたが試すことができるのは使用していgetSelectedItem()ます:

String messagecolor = editTextcolor.getSelectedItem().toString();

このメソッドはを返す可能性がnullあるため、これもチェックする必要があります。

于 2013-02-18T17:42:36.910 に答える