안드로이드 스피너를 이용하여 앱을 구상중에 있습니다.
스피너의 선택된 아이템에 따라 하위 스피너에 영향을 주려고합니다.
예를들어
첫번째 스피너가 한식 , 중식 ,일식 총 세개의 아이템이 있는데
한식을 선택했을 경우
두번째 스피너에 띄워줄 아이템을 비빔밥, 불고기.. 이런식으로 db에서 불러와 보여주려고합니다.
아래는 제가 시도해본 코드입니다. 도움부탁드립니다.
public class TempActvity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{
ArrayList<String> typeArr, contentArr, selectArr;
ArrayAdapter<String> typeAdapter, contentAdapter, selectAdapter;
Spinner typeSpin, contentSpin, selectSpin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.temp);
typeArr = new ArrayList<String>();
contentArr = new ArrayList<String>();
typeArr.add("한식");
typeArr.add("중식");
typeArr.add("일식");
typeAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, typeArr);
typeSpin = (Spinner) findViewById(R.id.typeSpin);
contentSpin = (Spinner) findViewById(R.id.contentSpin);
typeSpin.setOnItemSelectedListener(this);
typeSpin.setAdapter(typeAdapter);
contentSpin.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (view.getId() == R.id.typeSpin) {
if (typeSpin.getSelectedItem().equals("한식"))
contentArr.add("불고기");
contentArr.add("비빔밥");
contentArr.add("냉면");
contentAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, contentArr);
contentSpin.setAdapter(contentAdapter);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}