Android Spinner работает - но не может проанализировать и передать выбранное значение - PullRequest
0 голосов
/ 23 марта 2011

Я пытаюсь передать значение из выбора Android Spinner в URL.Все мои другие переменные проходят, и тост на счетчике показывает правильный выбор счетчика, когда он выбран.(для целей здесь код не показывает все переменные.)

Мой журнал показывает VAR страны как NULL.Нужно, чтобы значение "country0" передавалось как другие.Как я могу это сделать?

спасибо

public void onCreate(Bundle savedInstanceState)    {
    super.onCreate(savedInstanceState);
    Log.d(DEBUG_TAG, "onCreate");
    mContext = this; //TODO legacy may not be needed
    SERVER = this.getString(R.string.mygallerist_server_base);
        settings = getSharedPreferences(PREFS_NAME, 0);
        uid = settings.getString("uid", NOT_SET); 

        //SPINNER
        Spinner spinner = (Spinner) findViewById(R.id.spinner);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.countries_array, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);


        mOver35CheckBox = (CheckBox) findViewById(R.id.Over35);
        class MyOnItemSelectedListener implements OnItemSelectedListener {

                 //SPINNER PARSING     
            @Override
         public void onItemSelected(AdapterView<?> country0,
              View view, int pos, long id) {
            Toast.makeText(country0.getContext(), "The country is " +
            country0.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();

            }

            @Override
            public void onNothingSelected(AdapterView country0 ) {
        // Do nothing.

            }

        }

        spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
            final String country = country0;///MAYBE THIS IS WHAT IS WRONG

        setPassword.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
            // If all fields filled in then go to server
                String country1 = country; /// OR MAYBE THIS IS WHAT IS WRONG

            String userName = mUserNameEditText.getText().toString();

1 Ответ

1 голос
/ 23 марта 2011

Возможно, я что-то упустил в вашем вопросе, но когда вы выбираете значение для Toast, вы можете просто установить значение частного члена, а затем прочитать это значение в вашем onClick (если вы знаете, что вы получение правильного значения в onItemSelected)

 private String countrySelection;
 public void onItemSelected(AdapterView<?> country0, View view, int pos, long id) {
      countrySelection = country0.getItemAtPosition(pos).toString();
      Toast.makeText(country0.getContext(), "The country is " + countrySelection, Toast.LENGTH_LONG).show();
 }
 ...
 final String country = countrySelection;
 setPassword.setOnClickListener(new View.OnClickListener(){
      public void onClick(View v) {
           sendDataToServer(country, ...);

Решает ли это вашу проблему?

Редактировать ...

Какой тип страны0 в этом контексте? (У меня пока нет прав на комментарии)

 final String country = country0;///MAYBE THIS IS WHAT IS WRONG
...