如今,好多 App 都有下拉选择框的需求,今天这个第三方下拉框可以满足我们大部分的需求噢! GitHub 地址: nice-spinner
效果图1. 在 build.gradle 文件添加:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
dependencies {
...
compile 'com.github.arcadefire:nice-spinner:1.3.1'
...
}
2. 布局文件中使用:
3. java 代码中使用:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NiceSpinner niceSpinner = (NiceSpinner)findViewById(R.id.nice_spinner);
List dataList = new ArrayList();
dataList.add("android");
dataList.add("java");
dataList.add("ios");
dataList.add("php");
dataList.add("kotlin");
niceSpinner.attachDataSource(dataList);
niceSpinner.addOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
switch (position) {
case 0 :
ToastUtil.showToast("android");
break;
case 1 :
ToastUtil.showToast("java");
break;
case 2 :
ToastUtil.showToast("ios");
break;
case 3 :
ToastUtil.showToast("php");
break;
case 4 :
ToastUtil.showToast("kotlin");
break;
}
}
});
}
}
4. ToastUtil.java
/**
* Created by gyq on 2017/12/28 11:54
*/
public class ToastUtil {
public static void showToast(String msg){
if(isMainThread()){
Toast.makeText(MyApplication.getContext(),msg,Toast.LENGTH_SHORT).show();
}else{
Looper.prepare();
Toast.makeText(MyApplication.getContext(),msg,Toast.LENGTH_SHORT).show();
Looper.loop();
}
}
public static void showLongToast(String msg){
if(isMainThread()){
Toast.makeText(MyApplication.getContext(),msg,Toast.LENGTH_LONG).show();
}else{
Looper.prepare();
Toast.makeText(MyApplication.getContext(),msg,Toast.LENGTH_LONG).show();
Looper.loop();
}
}
public static boolean isMainThread() {
return Looper.getMainLooper().getThread() == Thread.currentThread();
}
}
5. MyApplication.java
/**
* Created by gyq on 2017/12/28 11:54
*/
public class MyApplication extends Application {
private static Context appContext;
@Override
public void onCreate() {
super.onCreate();
appContext = this.getApplicationContext();
}
public static Context getContext() {
return appContext;
}
}