2015-05-27 2 views
0

Я пытаюсь получить объект из моей вертушки и установить его на некоторые постоянная, в этом случае «EFFECT_AQUA»Получить объект из вертушки и установить его

Моего массив

String[] spinnerValues = {"Aqua", "Mono", "Blackbird", "Negative"}; 

когда пользователь нажимает на «Aqua» в spinner. Я хочу, чтобы экран изменился на Aqua.

Мой счетчик установлен и называется

Spinner mySpinner = (Spinner) findViewById(R.id.spinner_show); 
mySpinner.setAdapter(new MyAdapter(this,R.layout.custom_spinner,spinnerValues)); 

Но не знаю, как я должен подойти. Видел много разных ответов, но ничего не нашел.

Я знаю, что мой выключатель придет в этой части

class SpinnerActivity extends Activity implements AdapterView.OnItemSelectedListener { 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    } 
} 

Любая помощь appricated !!

+0

Вы хотите изменить фон своего экрана в соответствии с выбором? –

+0

Да, за штуцер. Например, когда вы нажимаете на spinner и появляются различные элементы массива, каждый элемент должен иметь свой собственный фон. –

ответ

0

Если вы хотите получить объект из массива spinner при щелчке элемента, вы можете легко сделать это с помощью параметра позиции в методе onItemSelected.

Например: -

class SpinnerActivity extends Activity implements AdapterView.OnItemSelectedListener { 
@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    String itemSelected = spinnerValues[position]; 
    //Set this to a constant 
} 

}

Теперь, если вы выбираете Аква, то код будет установить переменную itemSelected в Аква.

Я надеюсь, что это то, что вам нужно

+0

. Я также дам этому попробовать и посмотреть, удовлетворяет ли это решение моим потребностям! –

0
final Spinner cardStatusSpinner1 = (Spinner)findViewById(R.id.text_interested); 
String cardStatusString; 
cardStatusSpinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 

    @Override 
    public void onItemSelected(AdapterView<?> parent, 
      View view, int pos, long id) { 
     cardStatusString = parent.getItemAtPosition(pos).toString(); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 

    } 
}); 
0
@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    } 

поставить код ниже, чтобы получить пункт первый, то вы можете манипулировать с помощью значений, как аква или любого цвета.

spinner = (Spinner)findViewById(R.id.spinner1); 
spinner.setAdapter(new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_expandable_list_item_1,spinnerValues)); 
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, 
      int position, long id) { 
     TextView tv = (TextView)view; 
     Toast.makeText(getApplicationContext(), tv.getText().toString(), 5000).show(); 
     switch(tv.getText().toString()){ 
     case "Aqua":{ 
      //change the color to aqua 
      break; 
     } 
     case " ...":{ 
      // 
      break; 
     } 
     //.... for all the option 
     } 
    } 
+0

Или Вы можете получить строку непосредственно из строки contant. для этого вам нужно использовать строку, как public void onItemSelected (AdapterView parent, View view, int position, long id) { String color = spinnerValues ​​[position]; переключатель (цвет) { – sahulab

+0

Спасибо! Эти решения работают отлично и должны быть поддержаны. Я использую public void onItemSelected (AdapterView parent, View view, int position, long id) {String color = spinnerValues ​​[position]; переключатель (цвет). И последний вопрос. Чтобы прекратить показывать эффект, я использую mCamera.stopPreview(); mCamera.startPreview(); чтобы остановить отображение эффекта, а затем снова запустить предварительный просмотр. Это рекомендуемый подход? –

Смежные вопросы