Android 개발 ----spinner 동적 연결

오늘 문제가 하나 생겼다. 하나의Activity (A) 가 다른Activity (B) 로 이동하는 것이다. 내 생각은 A에서ListView가 선택한 항목에서 원하는 문자열을 추출해서 B에 전달하는 것이다. B에서 전달된 정보를 받은 후에 B의 Spinner에 대응하는 변화를 하는 것이다.
A는 B에게 데이터를 전달하는 것이 매우 간단하다. A에서 Intent로putExtra를 가면 되고, B의onCreate()에서 getExtras를 사용하면 된다. 그런데 어떻게 해야만 Spinner도 따라서 바꿀 수 있을까?
원래 spinner는 set Selection () 이 있었는데, spinner를 전역 변수로 설정한 후 spinner를 사용합니다.setSelection(GestureConstant.FILE_GESTURE, false);됐어요.
일부 코드를 붙여서 완전하지 않다.
A Activity
			Intent fileIntent = new Intent(FileManager.this,
					CreateGestureActivity.class);
			fileIntent.putExtra("file", "file");
			startActivity(fileIntent);

B Activity
@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.create_gesture);

		spinner = (Spinner) findViewById(R.id.spinner);
		
		//   spinner adapter
		ArrayAdapter adapter = ArrayAdapter.createFromResource(
				this, R.array.add_gesture_prompt,
				android.R.layout.simple_spinner_item);
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinner.setAdapter(adapter);
		spinner.setPrompt("      ");
		//   spinner    
		spinner.setOnItemSelectedListener(new OnItemSelectedListener()
		{

			@Override
			public void onItemSelected(AdapterView> parent, View view,
					int position, long id)
			{
				Toast.makeText(CreateGestureActivity.this,
						parent.getItemAtPosition(position).toString(),
						Toast.LENGTH_SHORT).show();
				switch (position)
				{
				//   
				case GestureConstant.FILE_GESTURE:
					textView.setText("  :");
					editText.setText("mnt/sdcard/");
					button_choose.setText("  ");
					current_gesture = GestureConstant.FILE_GESTURE;
					overlay.clear(true);
					button_ok.setEnabled(false);
					// button.setVisibility(View.VISIBLE);
					break;
				default:
					break;
				}
			}

			@Override
			public void onNothingSelected(AdapterView> parent)
			{

			}
		});

		
		getIntent2SetSpinner();
	}

	/**
	 *        Intent  
	 */
	private void getIntent2SetSpinner()
	{
		Intent i = getIntent();
		Bundle b = i.getExtras();
		if("file".equals(b.getString("file")))
		{
			Log.i(TAG, "------------------------------------------------------>OK?");
			spinner.setSelection(GestureConstant.FILE_GESTURE, false);
			editText.setText("mnt/");

		}
	}

좋은 웹페이지 즐겨찾기