android+myeclipse+mysql自定义控件下拉框的数据绑定
原创作品,允许转载,转载时请务必声明作者信息和本声明。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自定义控件下拉框的数据绑定的更多相关文章
- (四十九)c#Winform自定义控件-下拉框(表格)
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...
- android模仿58筛选下拉框(PopupWindow实现)
前言:前几天用58同城APP找房子的时候,看到筛选下拉框蛮不错的,然后也有很多朋友需要实现这个功能,于是从网上下载了一个demo,在他的基础上进行修改,花了几个小时对他的代码进行修改,重构,封装.把一 ...
- Android实现三级联动下拉框 下拉列表spinner
Android实现(省.市.县)三级联动下拉框 下拉列表spinner 转载请注明出处: http://www.goteny.com/articles/2013/11/46.html http://w ...
- Android实现三级联动下拉框下拉列表spinner
原文出处:http://www.cnblogs.com/zjjne/archive/2013/10/03/3350107.html 主要实现办法:动态加载各级下拉值的适配器 在监听本级下拉框,当本级下 ...
- Android UI自定义Spinner下拉框(用popuwindow实现)-转
定义出第一个图片的布局和弹出框(一个listView)的布局,,这里就不在多说了~ListView需要自己定义一个MyspinnerAdapter~做好这些准备之后,就是弹出框的实现了~ prote ...
- 【Android】5.4 下拉框(Spinner)
分类:C#.Android.VS2015: 创建日期:2016-02-07 下拉列表框Spinner的用法和WinForms中ComboBox的用法非常相似,在Android应用中使用频次也相当高,因 ...
- (三十五)c#Winform自定义控件-下拉框
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...
- android中自定义下拉框(转)
android自带的下拉框好用不?我觉得有时候好用,有时候难有,项目规定这样的效果,自带的控件实现不了,那么只有我们自己来老老实实滴写一个新的了,其实最基本的下拉框就像一些资料填写时,点击的时候出现在 ...
- Android 第三方开源下拉框:NiceSpinner
Android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框Spinner所提供的设计样式,而改用自定 ...
随机推荐
- m_Orchestrate learning system---二十四、thinkphp里面的ajax如何使用
m_Orchestrate learning system---二十四.thinkphp里面的ajax如何使用 一.总结 一句话总结:其实ajax非常简单:前台要做的事情就是发送ajax请求过来,后台 ...
- MySql-Error: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
MySql-Error: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 标签( ...
- HDFS的配额
- C#篇(二)——属性的实质
属性的内部实现其实就是方法 我们平时写的代码: class Student { private int age; public int Age { get { return age; } set { ...
- Android EditText+ListPopupWindow实现可编辑的下拉列表
使用场景 AutoCompleteEditText只有开始输入并且与输入的字符有匹配的时候才弹出下拉列表.Spinner的缺点是不可以编辑.所以本文介绍如何使用EditText+ListPopupWi ...
- 【基础篇】Android中获取Drawable的方法
public static Drawable getDrawable(Context context,String filename) { BitmapDrawable drawable=null; ...
- 关于node的聊天室错误
Deprecationwarning:process,EventEmitter is deprecated use require ('events')instead 关于node的聊天室错误 > ...
- IHttpHandler的学习(1)
IHttpHandler的那些事 今晚看了一晚上的IHttpHAndler的知识, 在自定义了Httphandler后,在配置webconfig里配置也是个技术活,什么集成模式,什么asp管道什么的: ...
- js文字的无缝滚动(上下)
使用scrolltop值的递增配合setInterval与setTimeout实现相关效果,左右无缝滚动使用scrollLeft即可 Dom内容 <div id="container& ...
- echarts如何修改数据视图dataView中的样式
原文链接:点我 做了一个现实折线图的图表,通过右上角icon可以自由切换成柱状图,表格.在表格中遇到的一点小问题,解决方案如下: 1.场景重现 这是一个显示两个折线图的图表,一切看起来都很顺利.但是点 ...