마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

스피너의 선택된 값을 변수에 저장하기(String형)

0 추천

@Override
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.wordmenu);
	    
	    final Spinner spinner = (Spinner)findViewById(R.id.spinner);
	    ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this, R.array.amountofwords, android.R.layout.simple_spinner_dropdown_item);
	    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
	    spinner.setAdapter(adapter1);
	    
	    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id)
			{
				String str = (String) spinner.getSelectedItem();
				select_item = str;
				Toast.makeText(getApplicationContext(), parent.getItemAtPosition(position).toString()+"을 선택하셨습니다", Toast.LENGTH_SHORT).show();
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0)
			{
				
			}
		});
	    	    
	    Button start = (Button)findViewById(R.id.startbtn);
	    
	    start.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				
				if(select_item.equals("1번 ~ 20번"))
				{
					Intent intent = new Intent(WordMenu.this, FlashingWords1.class);
					startActivity(intent);
				}
				
				else if(select_item.equals("21번 ~ 40번"))
				{
					Intent intent = new Intent(WordMenu.this, FlashingWords2.class);
					startActivity(intent);
				}
				
			}
	    	
	    });
	    
	}

 

제목 그대로입니다.

string변수는 객체 형태로 다뤄야 한다고 해서 저 위에 select_item을 static 객체로 선언하고(여기 쓰지는 않았지만)

그 값을 equals로 비교해서 각각 다른 액티비티로 전환하게 만드려고 하는데...

문법적인 오류는 없는데 작동을 안하는군요.

로그캣도 아무런 말을 하지 않습니다...

 

그러니까, 궁금한 건 이겁니다.

'스피너에서 선택한 값을 String str 에 저장해서, equals 문으로 비교할 수 있게 하는 법'이요.

저 getItemSelected 를 써서 값을 받아 오는것이 맞는건지, 아니라면 뭘 써야 하는지...

혹여 더 좋은 방법을 알고 계신다면 그걸 가르쳐주세요.

제발 살려주세요 ㅠㅠ

저번 질문보다 간단하다고 생각하는데 ㅠㅠ

해츨링 (290 포인트) 님이 2013년 6월 17일 질문

2개의 답변

0 추천
 
채택된 답변

public static String select_item = "";  전역변수 설정해주세요!

arrayList = new ArrayList();
arrayList.add("1");
arrayList.add("2");
arrayList.add("3");

 

// Spinner 생성
  
final ArrayAdapter adapter = new ArrayAdapter(this, R.layout.spinner_style, arrayList);
  Spinner spinner = (Spinner) findViewById(R.id.아이디값);
  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

  spinner.setPrompt("구분을 선택하세요.");

  spinner.setSelection(0);
  spinner.setAdapter(adapter);

 

 

  spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

   @Override
   public void onItemSelected(AdapterView<?> parent, View v,
     int position, long id) {
    Toast.makeText(getApplicationContext(),
      adapter.getItem(position) + " 을 선택했습니다.", 1).show();
    select_item = String.valueOf(arrayList.get(position));
    
    // 선택시
    if (select_item.toString().equals("선택값")) {

}

간단하게 코드내에서 스피너 생성했네요!
도움이 되셨으면 좋겠네요!

 

 

 
안드로메다개발자 (8,830 포인트) 님이 2013년 6월 17일 답변
해츨링님이 2013년 6월 19일 채택됨
저... 저 맨 위의 ArrayList 부분이 이해가 잘 안되는데..
arrayList 앞에 ArrayList<?> 같은게 붙어있어야하는게 아닌가요?
맨 위의 ArrayList 부분만 조금 더 자세하게 가르쳐주시면 감사하겠습니다...
private ArrayList arrayList;

전역변수 선언하시면 됩니다!
일단 스피너 이외의 걸로 대체하는 방향으로 잡긴 했습니다만...
답변 감사했습니다 ㅋㅋ
나중에 참고할게요!
0 추천

// Member 변수 선언

private String[] values;

 

spinner.setAdapter(adapter1);

values = getResources().getArrayString(R.array.amountofwords);

 

@Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id)
            {
                String str = values[position];
                select_item = str;
                Toast.makeText(getApplicationContext(), parent.getItemAtPosition(position).toString()+"을 선택하셨습니다", Toast.LENGTH_SHORT).show();
            }
aucd29 (218,390 포인트) 님이 2013년 6월 17일 답변
죄송합니다, 뭘 잘못했는지는 모르겠지만 안 되더군요...
...