A. android二级联动 饿了么
android中一般省市联动的会比较多,还有一些城市的市区都会使用到,一般使用下拉列表的方式
B. Android上这种布局和联动的滑动效果是怎么做到的
实现思路简介:viewpager是全屏的,所有页面共用的header,根据当前页面listview或者scrollview的滑动距离设置translationY;切换tab时,根据当前header的高度调整下一个tab页面的滚动距离。缺点:封面上有很多响应时,需要自己进行手势处理
C. 想做一个android 省市县三级联动,数据是从接口读取,怎么做
以前做过,数据是在本地xml里面取的: 上面是省市区的xml数据网盘地址。 如果要做成从服务器取,那么就一次性取下来,然后还是一样的流程。 如果你想选择省再去取对应的市,那么就要传省的id去获取对应的市,这时候就要有等待框,可能用户体验差一点。
D. android中spinner如何实现省市二级联动
Androidspinner实现省市二级联动,需要自定义adpter,将数据源绑定到adpter,当点击省时,触发自定义响应事件,改变市,示例如下:
java">{
privateTextViewtextView;
privateSpinnerprovince;
privateSpinnercity;
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//String[]provinces=newString[]{"-省份-","河北省","山西省","北京"};
textView=(TextView)this.findViewById(R.id.textView);
province=(Spinner)this.findViewById(R.id.province);
city=(Spinner)this.findViewById(R.id.city);
//(处理省的显示)
//将可选内容与ArrayAdapter的连接(从资源数组文件中获取数据)
ArrayAdapter<CharSequence>adapter=
ArrayAdapter.createFromResource(this,R.array.province,android.R.layout.simple_spinner_item);
//newArrayAdapter<String>(this,android.R.layout.simple_spinner_item,provinces);
//设置下拉列表的风格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//将数据绑定到Spinner视图上
province.setAdapter(adapter);
//添加条目被选中监听器
province.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){
@Override
publicvoidonItemSelected(AdapterView<?>parent,Viewview,intposition,longid){
//parent既是province对象
Spinnerspinner=(Spinner)parent;
Stringpro=(String)spinner.getItemAtPosition(position);
//(处理省的市的显示)
//将默认值与ArrayAdapter连接(从资源数组文件中获取数据)
ArrayAdapter<CharSequence>cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.citydefault,android.R.layout.simple_spinner_item);
//newArrayAdapter<CharSequence>
//(MainActivity.this,android.R.layout.simple_spinner_item,cities);
//获取所在省含有哪些市(从资源数组文件中获取数据)
if(pro.equals("河北省")){
cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.hb,android.R.layout.simple_spinner_item);
}elseif(pro.equals("北京市")){
cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.bj,android.R.layout.simple_spinner_item);
}elseif(pro.equals("山西省")){
cityAdapter=ArrayAdapter.createFromResource
(MainActivity.this,R.array.shx,android.R.layout.simple_spinner_item);
}
//绑定数据到Spinner(City)上
city.setAdapter(cityAdapter);
}
@Override
publicvoidonNothingSelected(AdapterView<?>parent){
}
});
}
}
E. Android上这种布局和联动的滑动效果是怎么做到的
CoordinatorLayout+AppBar,desgin包里的。正确的做法就是自己处理滑动事件。建议先了解一下View的事件传递机制。这个问题我遇到过,写了个viewgroup解决这个问题。scrollview里面放viewpager,布局的时候手动设置viewpager的高度。viewpager的指示器做两个,一个放scrollview里面,一个放scrollview外面。
老版本的网易云音乐 曾经用过这个效果。以前实现过这样的效果。ViewPager顶部有一个Layout。下面ViewPager中的每个ListView有一个空白的Header当前页面上下滑动的时候动态的根据Y值去改变顶部的Layout的Y值。当页面左右滑动完成之后, 根据当前ListView的Y值.重新丝滑的改变顶部Layout的Y值。现在有个开源项目也能实现类似的效果。
F. android 如何实现 省份,城市级联菜单
Android实现省份城市级联菜单的方法:
1、下载的数据库 db_weather.db 放到sdcard/weather 目录下面 方便后续操作
2、使用 SQLite Database Browser 可以打开数据库 查看数据 和表等信息
3、了解了表的构成可以实现操作了androidManifest.xml配置文件声明 添加操作sdcard 权限
4、布局文件main.xml主要使用两个 spinner 分别实现城市 省份的选择
G. android省市区多级联动的布局怎么实现的
使用相对布局,然后使用控件spinner:
<Spinner
android:id="@+id/spinner03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/spinner02"
/>
H. 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>
I. 如何使用Spinner实现省市的二级联动功能
1.确定我需要的数据放到res/values/arrays.xml文件(定义数组)
<?xml version="1.0"
encoding="utf-8"?>
<resources>
<string-array
name="province">
<item>-省份-</item>
<item>河北省</item>
<item>山西省</item>
<item>北京市</item>
</string-array>
<string-array name="hb">
<item>-城市-</item>
<item>承德市</item>
<item>邯郸市</item>
<item>廊坊市</item>
</string-array>
<string-array name="bj">
<item>-城市-</item>
<item>海淀区</item>
<item>朝阳区</item>
<item>崇文区</item>
</string-array>
<string-array name="shx">
<item>-城市-</item>
<item>大同市</item>
<item>临汾市</item>
</string-array>
</resources>
2.编写xml界面res/values/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"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/province"
/>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/province"
android:id="@+id/city"
/>
</RelativeLayout>
</LinearLayout>
3.在Activity中实现省市联动功能
/**
* 通过Spinner实现省市(两级)联动
* @author
黑色天空
*/
public class MainActivity extends Activity {
private
TextView textView ;
private Spinner province;
private Spinner city;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//String[] provinces =
new String[]{"-省份-","河北省","山西省","北京"};
textView =
(TextView)this.findViewById(R.id.textView);
province =
(Spinner)this.findViewById(R.id.province);
city =
(Spinner)this.findViewById(R.id.city);
//(处理省的显示)
//将可选内容与ArrayAdapter的连接(从资源数组文件中获取数据)
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this, R.array.province,
android.R.layout.simple_spinner_item);
//new
ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,
provinces);
//设置下拉列表的风格
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//将数据绑定到Spinner视图上
province.setAdapter(adapter);
//添加条目被选中监听器
province.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void
onItemSelected(AdapterView<?> parent, View view,int position, long id) {
//parent既是province对象
Spinner spinner = (Spinner)parent;
String pro = (String)spinner.getItemAtPosition(position);
//(处理省的市的显示)
//将默认值与ArrayAdapter连接(从资源数组文件中获取数据)
ArrayAdapter<CharSequence> cityAdapter = ArrayAdapter.createFromResource
(MainActivity.this, R.array.citydefault,
android.R.layout.simple_spinner_item);
//new ArrayAdapter<CharSequence>
//
(MainActivity.this,android.R.layout.simple_spinner_item, cities);
//获取所在省含有哪些市(从资源数组文件中获取数据)
if(pro.equals("河北省")){
cityAdapter = ArrayAdapter.createFromResource
(MainActivity.this, R.array.hb, android.R.layout.simple_spinner_item);
}else if(pro.equals("北京市")){
cityAdapter =
ArrayAdapter.createFromResource
(MainActivity.this,
R.array.bj, android.R.layout.simple_spinner_item);
}else
if(pro.equals("山西省")){
cityAdapter =
ArrayAdapter.createFromResource
(MainActivity.this,
R.array.shx, android.R.layout.simple_spinner_item);
}
//绑定数据到Spinner(City)上
city.setAdapter(cityAdapter);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
J. Android Spinner实现省市二级联动效果
Spinner1,在setOnItemSelectedListener里查询数据,并将数据给
Spinner2,再弹出选择不就实现了吗