2014-06-23 5 views
-1

기본 텍스트가있는 회 전자가 있습니다. 표시 텍스트 상자에 사용하는 배열에서는 기본 텍스트를 사용할 수 없습니다. 이를 위해 맞춤 어레이 어댑터를 사용하고 있습니다.Android에서 회 전자의 항목 선택

예를 들어 기본 텍스트가 14:13으로 표시되지만 내 배열에는 텍스트가 14:15입니다. 이 항목에 대해 setSelection을 수행하고 싶습니다 (14:15). 이것으로 무엇을 할 수 있습니까?

public class CustomSpinnerAdapter extends ArrayAdapter<String>{ 

      Context context; 
      String[] objects; 
      String firstElement; 
      boolean isFirstTime; 

      public CustomSpinnerAdapter(Context context, int textViewResourceId, String[] objects, String defaultText) { 
       super(context, textViewResourceId, objects); 
       this.context = context; 
       this.objects = objects; 
       this.isFirstTime = true; 
       setDefaultText(defaultText); 
      } 

      @Override 
      public View getDropDownView(int position, View convertView, ViewGroup parent) { 

       if(isFirstTime) { 
        objects[0] = firstElement; 
        isFirstTime = false; 
       } 
//    ((TextView) convertView).setGravity(Gravity.CENTER_VERTICAL); 
       return getCustomView(position, convertView, parent); 
      } 

      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       notifyDataSetChanged(); 
       return getCustomView(position, convertView, parent); 
      } 

      public void setDefaultText(String defaultText) { 
       this.firstElement = objects[0]; 
       objects[0] = defaultText; 
      } 

      public View getCustomView(int position, View convertView, ViewGroup parent) { 

       LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       View row = inflater.inflate(R.layout.time_item, parent, false); 
       TextView label = (TextView) row.findViewById(R.id.txt_time); 
       label.setText(objects[position]); 
       return row; 
      } 


      } 

spinner image

다음 이미지

정확한 요구 사항을 알려줍니다. 우리가 행동에 올 때 먼저 스피너는 기본 텍스트 "10:39"를 표시하지만 스피너 arraylist에서는 10:37과 10:50의 값을 갖습니다. 그래서 근처의 가치로 표시하고 싶습니다.

이제 기본값을 표시하고 팝업을 누르면 팝업창이 완벽하게 작동합니다. 하지만 내가 원하는 것은 자동으로 10:37으로 스크롤하는 스피너를 탭하면 선택한 항목이 표시됩니다.

+0

arraylist에서 사용할 수있는 가변 위치를 어댑터 클래스에 제공하면 작동합니다. setSelection (위치)에 사용되는 선택 항목입니다. – malli

답변

1

이 코드는 회 전자 어댑터에 사용할 수 있습니다.

Spinner spinner = (Spinner) findViewById(R.id.your_spinner); 
ArrayAdapter adapter = new ArrayAdapter(YourActivity.this, R.layout.spinner_item, array_spinner); 
//array_spinner is your array to displayed on spinner selection 

spinner.setAdapter(adapter); 
spinner.setPrompt("Choosed item"); 
spinner.setSelection(int position); //position of item in your array_spinner 

이 정보가 도움이되기를 바랍니다.

+0

안녕 BatuhanC, 내가 기본 텍스트를 설정하고 싶습니다 때 나는 단지 당신이 위의 사용자 정의 어댑터를 사용하여 defaulttext 선택한 item.i 일을 dropdown.so됩니다 특정 항목에 대해 자동으로 스크롤해야 할 회 전자를 누릅니다. – malli

관련 문제