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,再彈出選擇不就實現了嗎