Android realizes three-level linkage of drop-down menu
•
Android
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
二维码