下拉列表框
引言:
别人写的东西往往不能全信,照着写出bug很正常,有些东西看来还是要自己摸索啊。下拉列表,要用到Spinner控件。
步骤一:
你需要在布局中声明这个控件。
<Spinner
android:entries="@array/order"
android:id="@+id/spinner"
android:layout_width="32dp"
android:layout_height="match_parent"
android:layout_gravity="right" />
步骤二:
看到第一个属性了吗,这个属性是用来引入一个样式,就是列表的每一项。这个样式需要自己去定义,就是在values目录下定义一个xml文件:
文件中写入样式
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="order">
<item>纵向排列</item>
<item>瀑布流</item>
</string-array>
</resources>
name属性用于在布局中引入样式。
步骤三:
样式都已经搞定了,是不是该让它发挥作用呢,设置一下点击事件吧。我这个例子呢,是在碎片中实现的,活动中会更简单。
public class Fragment2 extends Fragment {
private Spinner myspinner;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.lay2,container,false);
Intent intent=new Intent(getActivity(),PicActivity.class);
startActivity(intent);
myspinner=(Spinner)view.findViewById(R.id.spinner);
myspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String select_item=parent.getItemAtPosition(position).toString();
switch (select_item){
case "纵向排列":
Toast.makeText(getActivity(),"已设置为纵向排列",Toast.LENGTH_SHORT).show();
break;
case "瀑布流":
Toast.makeText(getActivity(),"已设置为瀑布流排列",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
return view;
}
}
其实就是重写了两个函数,当你写完
myspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener());
alt+enter就会让你重写函数,强大的Android Studio。