原创作品,允许转载,转载时请务必声明作者信息和本声明。http://www.cnblogs.com/zhu520/p/8031936.html

本人小白,那个大神看到有问题可指出,谢谢。。。。

这个是接着之前的 android+myeclipse+mysql下拉框数据绑定 的服务器(后台)来做的,所以这里就只给 Android的代码,如果想要服务器的代码去 android+myeclipse+mysql下拉框数据绑定找就好了

一:Android studio

  • 1);先进行准备前工作先 在build.gradle四个地方要加入代码

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
jcenter()
mavenCentral()//apllay // add plugin
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
} allprojects {
repositories {
jcenter()
}
} task clean(type: Delete) {
delete rootProject.buildDir
}

build.gradle

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// 这个非常重要,会生成Dao的类
greendao { //add plugin
schemaVersion 2
//生成greedao的对象类的路径
设置DaoMaster,DaoSession,Dao包的路径,我不太喜欢它原来的路径,每次找都很麻烦,所以把它放在一个自己方便看的路径下来,你也可以不要下面这两句!
daoPackage 'zhu.com.sprnner_cbo.greendao'
targetGenDir 'src/main/java'//保存到java代码路径 ==》这句你可以不要
}

如果没有这俩句,那么DaoMaster,DaoSession,Dao的原路径是在这里的

有这俩句,那么DaoMaster,DaoSession,Dao那么路径挺好找的


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'//add plugin
android {
compileSdkVersion 26
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "com.example.pearl.customdropdownbox"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
// 这个非常重要,会生成Dao的类
greendao { //add plugin
schemaVersion 2
//生成greedao的对象类的路径 ==》我不太喜欢它原来的路径,所以把它放在一个自己方便看的路径下来,所以这句你可以不要!
daoPackage 'com.example.pearl.customdropdownbox.greendao'
targetGenDir 'src/main/java'//保存到java代码路径 ==》这句你可以不要
} dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile 'com.loopj.android:android-async-http:1.4.9'// add library==》这个是添加 网络请求的插件
compile 'org.greenrobot:greendao:3.2.2' // add library ==>这个是 添加 greedao插件
}

build.gradle

a):因为需要网络的请求 所以 要必须 要在AndroidManifest.xml加一句代码,不加就会出现下面这种错误的情况

12-26 02:45:25.969 5267-5334/zhu.com.sprnner_cbo W/System.err: java.net.SocketException: Permission denied
12-26 02:45:25.970 5267-5334/zhu.com.sprnner_cbo W/System.err: at java.net.Socket.createImpl(Socket.java:473)
12-26 02:45:25.970 5267-5334/zhu.com.sprnner_cbo W/System.err: at java.net.Socket.getImpl(Socket.java:536)
12-26 02:45:25.971 5267-5334/zhu.com.sprnner_cbo W/System.err: at java.net.Socket.setSoTimeout(Socket.java:1127)
12-26 02:45:25.971 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:116)
12-26 02:45:25.971 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:157)
12-26 02:45:25.971 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.conn.scheme.SchemeSocketFactoryAdaptor.connectSocket(SchemeSocketFactoryAdaptor.java:65)
12-26 02:45:25.972 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)
12-26 02:45:25.972 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:145)
12-26 02:45:25.972 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:131)
12-26 02:45:25.972 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
12-26 02:45:25.973 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)
12-26 02:45:25.973 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:860)
12-26 02:45:25.973 5267-5334/zhu.com.sprnner_cbo W/System.err: at cz.msebera.android.httpclient.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
12-26 02:45:25.973 5267-5334/zhu.com.sprnner_cbo W/System.err: at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:146)
12-26 02:45:25.974 5267-5334/zhu.com.sprnner_cbo W/System.err: at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:177)
12-26 02:45:25.974 5267-5334/zhu.com.sprnner_cbo W/System.err: at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:106)
12-26 02:45:25.974 5267-5334/zhu.com.sprnner_cbo W/System.err: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
12-26 02:45:25.974 5267-5334/zhu.com.sprnner_cbo W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-26 02:45:25.975 5267-5334/zhu.com.sprnner_cbo W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
12-26 02:45:25.975 5267-5334/zhu.com.sprnner_cbo W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
12-26 02:45:25.975 5267-5334/zhu.com.sprnner_cbo W/System.err: at java.lang.Thread.run(Thread.java:761)

错误情况

好了配置弄好剩下的就 很好解决了

b):设置实体类:

实体类 要根据返回的json中 相对于的key 一一对应

注意:   主键:id必须要设置Long的类型 ,切记 必须要加入  @Entity, 和@Id

设置好变量后 ,还有一个操作 设置 生成DaoMaster,DaoSession,Dao类的操作,这它就会自动补全我们实体类剩下的get和set的方法了

================生成的========》

    最后在实体类中再加 一个方法 得到 从 服务器专递的json的数据
// 将json ==>转化为 Bean的对象(即Tb_Cbo_CLDL的对象)
public static Tbmep json_To_Bean(JSONObject object){
try {
return new Tbmep(object.getLong("did"),
object.getString("dname")
);
}catch (Exception e){ }
return null;
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~··

Tbmep

package com.example.pearl.customdropdownbox;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Generated;
import org.json.JSONObject; /**
* Created by Pearl on 2017/12/27.
*/ @Entity
public class Tbmep {
@Id
private Long did;
private String dname;
@Generated(hash = 1103728403)
public Tbmep(Long did, String dname) {
this.did = did;
this.dname = dname;
}
@Generated(hash = 1857599075)
public Tbmep() {
}
public Long getDid() {
return this.did;
}
public void setDid(Long did) {
this.did = did;
}
public String getDname() {
return this.dname;
}
public void setDname(String dname) {
this.dname = dname;
}
// 将json ==>转化为 Bean的对象(即Tb_Cbo_CLDL的对象)
public static Tbmep json_To_Bean(JSONObject object){
try {
return new Tbmep(object.getLong("did"),
object.getString("dname")
);
}catch (Exception e){ }
return null;
}
}

2):界面

a):activity_cbo.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.pearl.customdropdownbox.CBOActivity"> <RelativeLayout
android:id="@+id/relativelayout"
android:padding="2dp"
android:layout_width="wrap_content"
android:layout_height="42dp" >
<TextView
android:id="@+id/kj_tv_tbmep"
android:background="@drawable/etitext_frame_radiuo"
android:layout_width="130dp"
android:layout_height="35dp"
android:layout_centerVertical="true"
android:gravity="left|center"
android:hint="~部门~"
android:paddingLeft="10dp"
android:textColor="#ff000000"
android:textSize="11sp" >
</TextView>
<LinearLayout
android:id="@+id/bt_dropdown"
android:layout_width="25dp"
android:layout_height="match_parent"
android:layout_marginLeft="109dp"
android:gravity="center"
>
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/btn_click_radius_press" />
</LinearLayout>
</RelativeLayout> </RelativeLayout>

b):spiner_item_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:minHeight="40dp"> <TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:gravity="center"
android:textColor="@color/text_yellow"
android:textSize="18sp" />
<TextView
android:id="@+id/text_provinceId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:gravity="center"
android:visibility="invisible"
android:textColor="@color/text_yellow"
android:textSize="18sp" />
</RelativeLayout>

spiner_listview_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="#ffffff"
android:orientation="vertical"> <ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/sprinner_line_background"
android:cacheColorHint="#00000000"
android:scrollbars="none"></ListView> </LinearLayout>

需要用到 一些应用来设置界面

a):values的设置

b)drawable的设置

btn_click_radius_press.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="@drawable/btn_press"/>
<item android:drawable="@drawable/btn_radius"/>
</selector> <!--要是button可以变色:
那么要把在btn_radius.xml的btn_bg和btn_press.xml没按的效果组合起来就可以进行变色的效果-->

btn_press.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/holo_red_dark">
</solid><!--solid是一个填充的的颜色-->
<stroke android:width="1dp"
android:color="#A3AAAA">
</stroke>
<corners android:radius="5dp"/>
</shape> <!--这个是按的效果: 这个是定义进度条的时候使用 button 变色的情况-->

btn_radius.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/holo_green_light">
</solid>
<stroke android:width="1dp"
android:color="#fff"> </stroke>
<corners android:radius="5dp"/>
</shape>

etitext_frame_radiuo.xml

<?xml version="1.0" encoding="utf-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp"> <padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
<!-- 设置圆角矩形 -->
<corners android:radius="7dp" /> <stroke
android:width="5px"
android:color="#1199EF" /> </shape>

sprinner_line_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
> <stroke
android:width="0.01dp"
android:color="#C6C7CE" />
<padding
android:bottom="5dp"
/>
<solid android:color="@android:color/holo_red_dark">
</solid><!--solid是一个填充的的颜色-->
<stroke android:width="1dp"
android:color="#A3AAAA">
</stroke>
<corners android:radius="5dp"/>
</shape>

3):代码

MyBaseAdapter 
package com.example.pearl.customdropdownbox;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView; import java.util.List; /**
* Created by XiaoZhu on 2017/9/26.
*/ public class MyBaseAdapter extends BaseAdapter { public static interface IOnItemSelectListener {
public void onItemClick(int pos);
} ; private List<String> mObjects; private LayoutInflater mInflater; public MyBaseAdapter(Context context, List<String> mObjects) {
this.mObjects = mObjects;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
} public void refreshData(List<String> objects, int selIndex) {
mObjects = objects;
if (selIndex < 0) {
selIndex = 0;
}
if (selIndex >= mObjects.size()) {
selIndex = mObjects.size() - 1;
}
} @Override//在此适配器中所代表的数据集的条目数
public int getCount() { return mObjects.size();
} @Override//获取数据集中与指定索引对应的数据项
public Object getItem(int pos) {
return mObjects.get(pos).toString();
} @Override//取在列表中与指定索引对应的行id
public long getItemId(int pos) {
return pos;
} @Override //下面的是重点
public View getView(int pos, View convertView, ViewGroup arg2) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = mInflater.inflate( R.layout.spiner_item_layout, null);
viewHolder = new ViewHolder();
viewHolder.mTextView = (TextView) convertView.findViewById(R.id.textView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
} //Object item = getItem(pos);
viewHolder.mTextView.setText(mObjects.get(pos)); return convertView;
} public static class ViewHolder {
public TextView mTextView;
} }

SpinerPopWindow

package com.example.pearl.customdropdownbox;

import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.PopupWindow; import java.util.List; /**
* Created by XiaoZhu on 2017/12/12.
*/ public class SpinerPopWindow extends PopupWindow implements AdapterView.OnItemClickListener { private Context mContext;
private ListView mListView;
private MyBaseAdapter mAdapter;
private MyBaseAdapter.IOnItemSelectListener mItemSelectListener; public SpinerPopWindow(Context context) {
super(context); mContext = context;
init();
} public void setItemListener(MyBaseAdapter.IOnItemSelectListener listener) {
mItemSelectListener = listener;
} public void setAdatper(MyBaseAdapter adapter) {
mAdapter = adapter;
mListView.setAdapter(mAdapter);
} private void init() {
View view = LayoutInflater.from(mContext).inflate(R.layout.spiner_listview_layout, null);
setContentView(view);
setWidth(LayoutParams.WRAP_CONTENT);
setHeight(LayoutParams.WRAP_CONTENT); setFocusable(true);
ColorDrawable dw = new ColorDrawable(0x00);
setBackgroundDrawable(dw); mListView = (ListView) view.findViewById(R.id.listview);
mListView.setOnItemClickListener(this);
} public void refreshData(List<String> list, int selIndex) {
if (list != null && selIndex != -1) {
if (mAdapter != null) {
mAdapter.refreshData(list, selIndex);
}
}
} @Override
public void onItemClick(AdapterView<?> arg0, View view, int pos, long arg3) {
dismiss();
if (mItemSelectListener != null) {
mItemSelectListener.onItemClick(pos);
}
} }

CBOActivity

package com.example.pearl.customdropdownbox;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast; import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler; import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject; import java.io.Serializable;
import java.util.ArrayList;
import java.util.List; import cz.msebera.android.httpclient.Header; public class CBOActivity extends Activity implements View.OnClickListener ,MyBaseAdapter.IOnItemSelectListener {
private List< String> list_Tbmep =null;
private TextView tv_sprnner_Tbmep;
private MyBaseAdapter mAdapter;
private RelativeLayout relativeLayout;
private SpinerPopWindow mSpinerPopWindow;
private List<Tbmep> list_cboTbmep=null;
private long TbmepID=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cbo);
relativeLayout = (RelativeLayout) findViewById(R.id.relativelayout);
relativeLayout.setOnClickListener(this);//自已下拉框
tv_sprnner_Tbmep= (TextView) findViewById(R.id.kj_tv_tbmep);
} @Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.relativelayout:
cbo_tbmep();
break; }
} @Override
public void onItemClick(int pos) {
TbmepID =list_cboTbmep.get((int) pos).getDid();
String value = list_Tbmep.get(pos);
tv_sprnner_Tbmep.setText(value.toString());
} public void cbo_tbmep(){
AsyncHttpClient client =new AsyncHttpClient();
//第一个参数是访问 后台的路径,第二是:参数根据 id获取 string 查询数据 ,第三个:回调函数
client.get("http://192.168.191.2:8080/2017_1214_cbo/Binding_Cbo/android_cbo.json", null, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
if (statusCode==200){
try {
JSONObject object = new JSONObject(new String(responseBody));//获取json数据
JSONArray jsonArray = object.getJSONArray("cbo_bm");//获取数据集名称为obj的数据
Log.d("jsonArray数据输出:", String.valueOf(jsonArray));
list_cboTbmep = new ArrayList<>();
for(int i=0;i<jsonArray.length();i++){
JSONObject json_one=jsonArray.getJSONObject(i);
//把 json 转换为 ==》bean的对象形式
//方法1;
Tbmep cbo=Tbmep.json_To_Bean(json_one); if (cbo!=null){
list_cboTbmep.add(cbo);//把对象放入 list的数组中
}
}
if (jsonArray.length() > 0) {
// TbmepID = list_cboTbmep.get(0).getDid();
list_Tbmep = new ArrayList< String >();
for (int i = 0; i < list_cboTbmep.size(); i++) {
Tbmep section = list_cboTbmep.get(i);
list_Tbmep.add(section.getDname()); } }
mAdapter=new MyBaseAdapter(CBOActivity.this,list_Tbmep);
mAdapter.refreshData(list_Tbmep, 0);
//初始化PopWindow
mSpinerPopWindow = new SpinerPopWindow(CBOActivity.this);
mSpinerPopWindow.setAdatper(mAdapter);
mSpinerPopWindow.setItemListener(CBOActivity.this);
showSpinWindow();//显示SpinerPopWindow
} catch (JSONException e) {
Toast.makeText(CBOActivity.this, "下拉框加载失败!", Toast.LENGTH_SHORT).show();
}
mAdapter.notifyDataSetChanged();// 数据加载 完毕, 通知列表去更新
}else if(statusCode==400){
Toast.makeText(CBOActivity.this, "若返回值400,则是返回网络异常!", Toast.LENGTH_SHORT).show();
}
} @Override
public void onFailure(int statusCode,cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) { }
}) ; }
//设置PopWindow
private void showSpinWindow() {
//设置mSpinerPopWindow显示的宽度
mSpinerPopWindow.setWidth(relativeLayout.getWidth());
//设置显示的位置在哪个控件的下方
mSpinerPopWindow.showAsDropDown(relativeLayout);
}
}

运行效果:

源码:http://download.csdn.net/download/qq_35812301/10176025

android+myeclipse+mysql自定义控件下拉框的数据绑定的更多相关文章

  1. (四十九)c#Winform自定义控件-下拉框(表格)

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

  2. android模仿58筛选下拉框(PopupWindow实现)

    前言:前几天用58同城APP找房子的时候,看到筛选下拉框蛮不错的,然后也有很多朋友需要实现这个功能,于是从网上下载了一个demo,在他的基础上进行修改,花了几个小时对他的代码进行修改,重构,封装.把一 ...

  3. Android实现三级联动下拉框 下拉列表spinner

    Android实现(省.市.县)三级联动下拉框 下拉列表spinner 转载请注明出处: http://www.goteny.com/articles/2013/11/46.html http://w ...

  4. Android实现三级联动下拉框下拉列表spinner

    原文出处:http://www.cnblogs.com/zjjne/archive/2013/10/03/3350107.html 主要实现办法:动态加载各级下拉值的适配器 在监听本级下拉框,当本级下 ...

  5. Android UI自定义Spinner下拉框(用popuwindow实现)-转

    定义出第一个图片的布局和弹出框(一个listView)的布局,,这里就不在多说了~ListView需要自己定义一个MyspinnerAdapter~做好这些准备之后,就是弹出框的实现了~  prote ...

  6. 【Android】5.4 下拉框(Spinner)

    分类:C#.Android.VS2015: 创建日期:2016-02-07 下拉列表框Spinner的用法和WinForms中ComboBox的用法非常相似,在Android应用中使用频次也相当高,因 ...

  7. (三十五)c#Winform自定义控件-下拉框

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

  8. android中自定义下拉框(转)

    android自带的下拉框好用不?我觉得有时候好用,有时候难有,项目规定这样的效果,自带的控件实现不了,那么只有我们自己来老老实实滴写一个新的了,其实最基本的下拉框就像一些资料填写时,点击的时候出现在 ...

  9. Android 第三方开源下拉框:NiceSpinner

    Android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框Spinner所提供的设计样式,而改用自定 ...

随机推荐

  1. HDU 2112 HDU Today &lt;SPFA算法+map函数&gt;

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  2. ubuntu SDK 安装

    纯净sdk安装1.地址-http://gmirror.org/#android-sdk-tools-only(国内镜像)2.下载到本地目录 ~/下载3.进入下载,解压 tar -zxvf androi ...

  3. An existing connection was forcibly closed by the remote host

    StackOverflow https://stackoverflow.com/questions/5420656/unable-to-read-data-from-the-transport-con ...

  4. Xfce4里添加登录后程序自动运行

    Xfce4里添加登录后程序自动运行 (注意该方法在登录桌面环境后才会自动运行程序. 在XUbuntu下测试过, Ubuntu下应该是类似的) 方法1: 找到这个东西, 自动添加一下 方法2: 在 .c ...

  5. Mysql优化ibdata1大小

    在MySQL数据库中,如果不指定innodb_file_per_table参数来单独存在每个表的数据,MySQL的数据都会存放在ibdata1文件.mysql ibdata1存放数据,索引等,是MYS ...

  6. 7.stack

    #include <iostream> #include <stack> #include <algorithm> #include <list> #i ...

  7. ZooKeeper Recipes and Solutions

    原文地址:http://zookeeper.apache.org/doc/current/recipes.html 参考:https://zookeeper.apache.org/doc/trunk/ ...

  8. js中字符串下划线转为驼峰

    function camelCase(string){ // Support: IE9-11+ return string.replace( /-([a-z])/g, function( all, l ...

  9. [国家集训队]整数的lqp拆分 数学推导 打表找规律

    题解: 考场上靠打表找规律切的题,不过严谨的数学推导才是本题精妙所在:求:$\sum\prod_{i=1}^{m}F_{a{i}}$ 设 $f(i)$ 为 $N=i$ 时的答案,$F_{i}$ 为斐波 ...

  10. 【APP自动化】Appium Android 元素定位方法 原生+H5

    参考资料: http://blog.csdn.net/vivian_ljx/article/details/54410024