Android 는 Spinner 컨트롤 을 사용 하여 드 롭 다운 상자 기능 을 실현 합 니 다.

Spinner 는 안 드 로 이 드 의 컨트롤 입 니 다.이 컨트롤 을 사용 하면 드 롭 다운 상 자 를 실현 할 수 있 습 니 다.
일단 효과 도 를 한번 볼 게 요.
这里写图片描述
这里写图片描述
이것 은 매우 간단 한 기능 입 니 다.위의 TextView,아래 의 Spinner,TextView 는 Spinner 가 선택 한 옵션 을 표시 하 는 데 사 용 됩 니 다.
다음은 실현 을 살 펴 보 자.
우선 xml 파일 에 spinner 를 작성 합 니 다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context=".MainActivity">
 <TextView
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/spinner_textview"/>
 <Spinner
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/spinner1"></Spinner>
</LinearLayout>
ListView 와 같이 Spinner 도 표 시 된 데 이 터 를 제공 하기 위해 List 와 Adapter 가 필요 합 니 다.

public class MainActivity extends AppCompatActivity {
 private List<String> teamList;
 private TextView textView;
 private Spinner spinner1;
 private ArrayAdapter<String> arrayAdapter;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  initView();
  //         
  arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  // adapter    spinner 
  spinner1.setAdapter(arrayAdapter);
  //      
  spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
   @Override
   public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
    textView.setText(teamList.get(i));
   }
   @Override
   public void onNothingSelected(AdapterView<?> adapterView) {
   }
  });
 }
 public void initView(){
  teamList = new ArrayList<>();
  initList();
  textView = findViewById(R.id.spinner_textview);
  spinner1 = findViewById(R.id.spinner1);
  arrayAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item,teamList);
 }
 public void initList(){
  teamList.add("  ");
  teamList.add("    ");
  teamList.add("    ");
  teamList.add("AC  ");
 }
}
원본 주소
다음은 Spinner 의 기능 과 용법 을 따로 살 펴 보 겠 습 니 다.
Spinner 는 사실 목록 선택 상자 입 니 다.그러나 Android 의 목록 선택 상 자 는 드 롭 다운 목록 을 표시 하지 않 고 사용자 가 선택 할 수 있 는 메뉴 를 팝 업 하 는 것 과 같 습 니 다.
Spinner 와 Gallery 는 모두 AbssSpinner 를 물 려 받 았 고 AbssSpinner 는 AdapterView 를 물 려 받 았 기 때문에 그 는 AdapterView 의 특징 을 보 였 다.AdapterView 에 Adapter 를 제공 하면 된다.
android:entries 속성 은 Spinner 가 정의 한 것 이 아니 라 AbssSpinner 에서 정의 한 것 이 므 로 Gallery(AbssSpinner 계승)도 이 XML 속성 을 지원 합 니 다.
개발 자가 Spinner 를 사용 할 때 목록 선택 상자 의 목록 항목 을 확인 할 수 있다 면 코드 를 작성 할 필요 가 없습니다.Spinner 에 android:entries 속성 을 지정 하면 Spinner 가 정상적으로 작 동 할 수 있 습 니 다.프로그램 이 실 행 될 때 Spinner 의 목록 항목 을 동적 으로 결정 하거나 프로그램 이 Spinner 의 목록 항목 을 맞 춤 형 으로 설정 해 야 한다 면 Adapter 를 사용 하여 목록 항목 을 제공 할 수 있 습 니 다.
다음 인터페이스 레이아웃 파일 에서 두 개의 Spinner 구성 요 소 를 정 의 했 습 니 다.그 중 하 나 는 Spinner 구성 요소 가 android:entries 속성 을 지정 하기 때문에 Activity 에서 Adapter 를 설정 해 야 합 니 다.

<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">
 <!--    Spinner  ,     Spinner     -->
 <Spinner
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:entries="@array/books"
  android:popupBackground="#66ccff"
  android:dropDownWidth="230dp"
  ></Spinner>
 <Spinner
  android:id="@+id/spinner"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  ></Spinner>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
 Spinner spinner;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //         Spinner  
  spinner= (Spinner) findViewById(R.id.spinner);
  String[] arr={"   ","   ","  "};
  //  ArrayAdapter  
  ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,arr);
  spinner.setAdapter(adapter);
 }
}

좋은 웹페이지 즐겨찾기