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

spinner에서 아무것도 선택안했을때 '선택하세요'라는 메세지를 나타내고 싶습니다.

–1 추천
현재 sting array에 선택할수 있는 항목을 넣은뒤 아답터로 구현후 이를 스피너에 세팅하였습니다. 그런데 string array의 첫번째 행의 값이 박에 나와지는데 혹시 첫행값으로 "선택하세요"라고 아무것도 선택안했을때 나타내게 하고 싶은데요.. 혹시 어떻게 하면 되는지 알려주세요.
grape111 (1,950 포인트) 님이 2016년 7월 25일 질문

1개의 답변

0 추천
 
채택된 답변

찾아봤는데 별도로 그런 속성이 있지는 않은거 같고 SpinnerAdapter를 커스텀해서 구현한 소스가 있어서 

퍼다 드립니다.

 

public class SpinnerTestActivity extends Activity {
    private String[] planets = { "Mercury", "Venus", "Earth", "Mars",
            "Jupiter", "Saturn", "Uranus", "Neptune" };
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Spinner spinner = (Spinner) findViewById(R.id.spinner);
        CustomAdapter adapter = new CustomAdapter(this,              // Use our custom adapter
                android.R.layout.simple_spinner_item, planets);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int pos, long id) {
                CustomAdapter.flag = true;                       // Set adapter flag that something
                has been chosen
            }
        });
    }
}
public class CustomAdapter extends ArrayAdapter {
    private Context context;
    private int textViewResourceId;
    private String[] objects;
    public static boolean flag = false;
    public CustomAdapter(Context context, int textViewResourceId,
            String[] objects) {
        super(context, textViewResourceId, objects);
        this.context = context;
        this.textViewResourceId = textViewResourceId;
        this.objects = objects;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null)
            convertView = View.inflate(context, textViewResourceId, null);
        if (flag != false) {
            TextView tv = (TextView) convertView;
            tv.setText(objects[position]);
        }
        return convertView;
    }
}

출처 : http://stackoverflow.com/questions/11483883/spinner-with-empty-selection

 

Development Guy (70,570 포인트) 님이 2016년 7월 26일 답변
grape111님이 2020년 7월 29일 채택됨
...