Android realizes three-level linkage of drop-down menu

The application of drop-down menu linkage in Android is very common. The drop-down menu in Android can be realized with spinner. The following lists realize three-level menu linkage through simple code.

One style file

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context="com.example.spinner.MainActivity" >

  <Spinner android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:id="@+id/spn"
    android:dropDownWidth="200dp"/>

  <Spinner android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/spn"
    android:id="@+id/city"
    android:dropDownWidth="200dp"/>
  <Spinner android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/city"
    android:id="@+id/counstryside"
    android:dropDownWidth="200dp"/>

</RelativeLayout>

II. Linkage logic code

package com.example.spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

/**
 * @author ZMC
 * 三级联动主要是灵活的应用三维数组
 */
public class MainActivity extends Activity {
 private String province[] = new String[]{"江西","湖南"};
 private Spinner spinner1,spinner2,spinner3;
 private int provinceindex;
 private String city [][] = {{"南昌","赣州"},{"长沙","湘潭"}};
 private String counstryside [][][] = {{{"青山湖区","南昌县"},{"章贡区","赣县"}},{{"长沙县","沙县"},{"湘潭县","象限"}}};
 ArrayAdapter<String> adapter1,adapter2,adapter3;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 spinner1 = (Spinner) findViewById(R.id.spn);
 adapter1 = new ArrayAdapter<>(this,android.R.layout.simple_dropdown_item_1line,province);
 spinner1.setAdapter(adapter1);

 spinner2 = (Spinner)findViewById(R.id.city);
 adapter2 = new ArrayAdapter<>(this,city[0]);
 spinner2.setAdapter(adapter2);

 spinner3 = (Spinner)findViewById(R.id.counstryside);
 adapter3 = new ArrayAdapter<>(this,counstryside[0][0]);
 spinner3.setAdapter(adapter3);
 spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

  @Override
  public void onItemSelected(AdapterView<?> parent,View view,int position,long id) {
  // TODO Auto-generated method stub
  provinceindex = position;
  adapter2 = new ArrayAdapter<>(MainActivity.this,city[position]);
  spinner2.setAdapter(adapter2);
  }

  @Override
  public void onNothingSelected(AdapterView<?> parent) {
  // TODO Auto-generated method stub

  }
 });

 spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {

  @Override
  public void onItemSelected(AdapterView<?> parent,long id) {
  // TODO Auto-generated method stub

  adapter3 = new ArrayAdapter<>(MainActivity.this,counstryside[provinceindex][position]);
  //adapter3.notifyDataSetChanged();
  spinner3.setAdapter(adapter3);
  }

  @Override
  public void onNothingSelected(AdapterView<?> parent) {
  // TODO Auto-generated method stub
  //当时据为空的时候触发的
  }
 });

 }

}

Three results

IV. summary

The three-level linkage is mainly the flexible application of three-dimensional arrays, which can easily associate the three menus through the array index. At the same time, set Spinner's setonitemselectedlistener to monitor the selected actions and dynamically set the contents of the drop-down menu.

The above is the whole content of this article. I hope it will help you in your study, and I hope you will support us a lot.

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>