当前位置:首页 » 安卓系统 » android省市联动

android省市联动

发布时间: 2023-08-24 04:45:31

⑴ 想做一个android 省市县三级联动,数据是从接口读取,怎么做

以前做过,数据是在本地xml里面取的: 上面是省市区的xml数据网盘地址。 如果要做成从服务器取,那么就一次性取下来,然后还是一样的流程。 如果你想选择省再去取对应的市,那么就要传省的id去获取对应的市,这时候就要有等待框,可能用户体验差一点。

⑵ android中省级联动一般用什么控件实现

Spinner上实现省市区三级联动,话不多说了

城市信息我将他放在strings.xml文件中,具体就不给出了,信息太大了

主xml文件部分代码如下:

[java] view plainprint?

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android=" "

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:focusableInTouchMode="false" >

<TableLayout

android:id="@+id/tableLayout1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:paddingTop="20px"

android:stretchColumns="1" >

<TableRow

android:id="@+id/tableRow1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingTop="10px"

android:="false" >

<TextView

android:id="@+id/province_text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="省份:"
>

</TextView>

<Spinner

android:id="@+id/province_spinner"

android:layout_width="wrap_content"

android:layout_height="wrap_content" >

</Spinner>

</TableRow>

<TableRow

android:id="@+id/tableRow2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingTop="10px"

android:="false" >

<TextView

android:id="@+id/city_text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="城市:" >

</TextView>

<Spinner

android:id="@+id/city_spinner"

android:layout_width="wrap_content"

android:layout_height="wrap_content" >

</Spinner>

</TableRow>

<TableRow

android:id="@+id/tableRow3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingTop="10px"

android:="false" >

<TextView

android:id="@+id/county_text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="县城镇:"
>

</TextView>

<Spinner

android:id="@+id/county_spinner"

android:layout_width="wrap_content"

android:layout_height="wrap_content" >

</Spinner>

</TableRow>

<EditText

android:id="@+id/display_edit"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:focusableInTouchMode="false"

android:hint="输出结果"

android:paddingTop="10px" >

</EditText>

</TableLayout>

</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android=" "
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:focusableInTouchMode="false" >

⑶ Android 怎么动态的设置Spinner联动

重写一下Adapter,然后自己对Adapter每个Item布局,在布局里面设置一下点击效果就行了。如:
public class MainActivity extends Activity {

private Spinner mSpinner;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}

private void initView(){
mSpinner = (Spinner)findViewById(R.id.spinner);
MyAdapter adapter = new MyAdapter(getResources().getStringArray(R.array.girl_names));
mSpinner.setAdapter(adapter);
}

private class MyAdapter extends BaseAdapter{
private String[] idInt ;
public MyAdapter(String[] idInt){
this.idInt = idInt;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return idInt.length;
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return idInt[arg0];
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
if(arg1 == null){
arg1 = getLayoutInflater().inflate(R.layout.spinner_item, null);
}
TextView text = (TextView)arg1.findViewById(R.id.spinner_item_id);
text.setText(idInt[arg0]);
return arg1;
}

}
spinner_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/text_selector"
android:orientation="vertical" >

<TextView
android:layout_margin="10dip"
android:id="@+id/spinner_item_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"

android:textIsSelectable="true" >
</TextView>

</LinearLayout>

然后:text_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@android:color/black"></item>
<item android:state_pressed="false" android:drawable="@android:color/transparent"></item>
</selector>

⑷ android 怎样用scrollowview嵌套gridview来实现多级联动

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。主要用于设置Adapter。
1.GridView常用的XML属性
属性名称 描述
android:columnWidth 设置列的宽度。
android:gravity 设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。
android:horizontalSpacing 两列之间的间距。
android:numColumns 设置列数。
android:stretchMode 缩放模式。
android:verticalSpacing 两行之间的间距。

2.实例1
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<GridView
android:id="@+id/GridView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnWidth="90dp"
android:numColumns="3"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
</LinearLayout>

⑸ 如何实现android 三个ListView实现类似省市区的联动效果

如何在Android设备旋转时暂存数据以保护当前的交互状态 总结了以下几种情况:
设备旋转时保存Activity的交互状态: onSaveInstanceState();
设备旋转时保存Fragment的交互状态: setRetainInstance(true);
设备旋转时保存WebView的数据: android:configChanges="keyboardHidden|orientation|screenSize";
设备旋转时保存在自定义View中绘制的图形。
如果Fragment不包含WebView,只是简单的UI View,像是TextView, Button, CheckBox, ImageView... 不建议使用setRetainInstance方法,只需要记住当前fragment的index,然后在设备旋转后根据数据重新实例化一个fragment。因为不包含大量数据,旋转的过程中几乎可以用“无缝切换”来形容。
如果包含WebView还是采用针对WebView的方法(题主的情况)。所以要看情况而定。

⑹ android如何动态更新二级联动spinner

spinner有一个setSelection(),将spinner设为全局变量后用spinner.setSelection(GestureConstant.FILE_GESTURE, false);就可以了。
贴一部分代码,不完整。
Activity
[java] view plain
Intent fileIntent = new Intent(FileManager.this,
CreateGestureActivity.class);
fileIntent.putExtra("file", "file");
startActivity(fileIntent);

⑺ Android对话框选择三级联动城市,求DEMO

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp">
<Spinner
android:id="@+id/spin_province"
android:layout_width="80dp"
android:layout_height="wrap_content"/>
<Spinner
android:id="@+id/spin_city"
android:layout_width="112dp"
android:layout_height="wrap_content"/>
<Spinner
android:id="@+id/spin_county"
android:layout_width="100dp"
android:layout_height="wrap_content"/>
</LinearLayout>


packagecom.example.android.demo.spinner;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.View;
importandroid.widget.AdapterView;
importandroid.widget.ArrayAdapter;
importandroid.widget.Spinner;


{
privateSpinnerprovinceSpinner=null;//省级(省、直辖市)
privateSpinnercitySpinner=null;//地级市
privateSpinnercountySpinner=null;//县级(区、县、县级市)
ArrayAdapter<String>provinceAdapter=null;//省级适配器
ArrayAdapter<String>cityAdapter=null;//地级适配器
ArrayAdapter<String>countyAdapter=null;//县级适配器
staticintprovincePosition=3;


//省级选项值
privateString[]province=newString[]{"北京","上海","天津","广东"};//,"重庆","黑龙江","江苏","山东","浙江","香港","澳门"};
//地级选项值
privateString[][]city=newString[][]
{
{"东城区","西城区","崇文区","宣武区","朝阳区","海淀区","丰台区","石景山区","门头沟区",
"房山区","通州区","顺义区","大兴区","昌平区","平谷区","怀柔区","密云县",
"延庆县"},
{"长宁区","静安区","普陀区","闸北区","虹口区"},
{"和平区","河东区","河西区","南开区","河北区","红桥区","塘沽区","汉沽区","大港区",
"东丽区"},
{"广州","深圳","韶关"//,"珠海","汕头","佛山","湛江","肇庆","江门","茂名","惠州","梅州",
//"汕尾","河源","阳江","清远","东莞","中山","潮州","揭阳","云浮"
}
};

//县级选项值
privateString[][][]county=newString[][][]
{
{//北京
{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},
{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"}
},
{//上海
{"无"},{"无"},{"无"},{"无"},{"无"}
},
{//天津
{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"},{"无"}
},
{//广东
{"海珠区","荔湾区","越秀区","白云区","萝岗区","天河区","黄埔区","花都区","从化市","增城市","番禺区","南沙区"},//广州
{"宝安区","福田区","龙岗区","罗湖区","南山区","盐田区"},//深圳
{"武江区","浈江区","曲江区","乐昌市","南雄市","始兴县","仁化县","翁源县","新丰县","乳源县"}//韶关
}
};


@Override
protectedvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

setSpinner();
}

/*
*设置下拉框
*/
privatevoidsetSpinner()
{
provinceSpinner=(Spinner)findViewById(R.id.spin_province);
citySpinner=(Spinner)findViewById(R.id.spin_city);
countySpinner=(Spinner)findViewById(R.id.spin_county);

//绑定适配器和值
provinceAdapter=newArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item,province);
provinceSpinner.setAdapter(provinceAdapter);
provinceSpinner.setSelection(3,true);//设置默认选中项,此处为默认选中第4个值

cityAdapter=newArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item,city[3]);
citySpinner.setAdapter(cityAdapter);
citySpinner.setSelection(0,true);//默认选中第0个

countyAdapter=newArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item,county[3][0]);
countySpinner.setAdapter(countyAdapter);
countySpinner.setSelection(0,true);


//省级下拉框监听
provinceSpinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener()
{
//表示选项被改变的时候触发此方法,主要实现办法:动态改变地级适配器的绑定值
@Override
publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,intposition,longarg3)
{
//position为当前省级选中的值的序号

//将地级适配器的值改变为city[position]中的值
cityAdapter=newArrayAdapter<String>(
MainActivity.this,android.R.layout.simple_spinner_item,city[position]);
//设置二级下拉列表的选项内容适配器
citySpinner.setAdapter(cityAdapter);
provincePosition=position;//记录当前省级序号,留给下面修改县级适配器时用
}
@Override
publicvoidonNothingSelected(AdapterView<?>arg0)
{

}

});


//地级下拉监听
citySpinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener()
{
@Override
publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,
intposition,longarg3)
{
countyAdapter=newArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item,county[provincePosition][position]);
countySpinner.setAdapter(countyAdapter);
}
@Override
publicvoidonNothingSelected(AdapterView<?>arg0)
{

}
});
}
}


要获取下拉框spinner中选中的值,用下面这方法就OK了
provinceSpinner.getSelectedItem().toString();
citySpinner.getSelectedItem().toString();
countySpinner.getSelectedItem().toString();

热点内容
e盘乱码文件夹 发布:2025-03-09 21:32:31 浏览:132
美图手机如何解密码开锁 发布:2025-03-09 21:14:35 浏览:15
行车记录仪安卓版如何使用 发布:2025-03-09 20:58:03 浏览:312
sql登陆不了 发布:2025-03-09 20:45:16 浏览:924
如何用本机做服务器 发布:2025-03-09 20:43:54 浏览:44
新时达服务器如何查故障 发布:2025-03-09 20:31:14 浏览:949
sql2005server 发布:2025-03-09 20:31:08 浏览:113
过滤sql注入 发布:2025-03-09 20:23:25 浏览:992
华为荣耀6大容量存储 发布:2025-03-09 20:22:34 浏览:457
php流图片 发布:2025-03-09 20:22:27 浏览:44