喝酒不骑马的Android自学日记(9)-Spinner的实例***2015年12月19日
Spinner的实例
先总结下,有关这类带数据源的View,基本思路都是一致的。
建立数据源,一般用list。然后建立适配器,分为Simple适配器和Array适配器。然后把数据源加载到适配器里,最后把适配器加载到View里。如果需要有点击事件的话,implements相应的接口,在方法里写入点击后的逻辑。
这里Spinner中的数据源list,用add.list()方法
在onItemSelected这个方法中
String cityName = adapter.getItem(position);
String cityName1 = list.get(position);
这两种方法都可以获取Spinner列表里所点击的text文本。
代码:
MainActivity.java:
XML
ProgressBar进度条
关于ProgressBar的style属性
style="?android:attr/progressBarStyleLarge"---大进度圈
如果什么都不设置默认是中进度圈
style="?android:attr/progressBarStyleSmall"---小进度圈
style="?android:attr/progressBarStyleHorizontal"---进度条
其中进度条可以是不精确显示进度,类似于过场动画表示正在加载
也可以是精确显示进度,可以按百分比形式呈现
现在想在标题栏里添加进度条。但是出了点问题,现版本开发包,说是默认继承AppcompatActivity,但是用不了
RequestWindowFeature(Window.FEATURE_PROGRESS);
RequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
如果继承Activity,标题栏又没有了。查了一晚上,不知道怎么解决。明天再查查。
2015年12月20日
------------------------------------------------------------
Spinner的实例
先总结下,有关这类带数据源的View,基本思路都是一致的。
建立数据源,一般用list。然后建立适配器,分为Simple适配器和Array适配器。然后把数据源加载到适配器里,最后把适配器加载到View里。如果需要有点击事件的话,implements相应的接口,在方法里写入点击后的逻辑。
这里Spinner中的数据源list,用add.list()方法
在onItemSelected这个方法中
String cityName = adapter.getItem(position);
String cityName1 = list.get(position);
这两种方法都可以获取Spinner列表里所点击的text文本。
代码:
MainActivity.java:
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{
private TextView textView;
private Spinner spinner;
private List<String> list;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
spinner = (Spinner) findViewById(R.id.spinner);
textView.setText("您现在选择的城市是沈阳");
//1.设置数据源
list = new ArrayList<String>();
list.add("沈阳");
list.add("锦州");
list.add("大连");
list.add("鞍山");
//2.新建ArrayAdapter(数组适配器)
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
//3.adapter设置一个下拉菜单的样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//4.spinner加载适配器
spinner.setAdapter(adapter);
//5.spinner设置监听器
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String cityName = adapter.getItem(position);
//String cityName1 = list.get(position);
textView.setText("您现在选择的城市是" + cityName);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.martin.study.MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="25sp"
android:textColor="#ff0000"/>
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner">
</Spinner>
</LinearLayout>
ProgressBar进度条
关于ProgressBar的style属性
style="?android:attr/progressBarStyleLarge"---大进度圈
如果什么都不设置默认是中进度圈
style="?android:attr/progressBarStyleSmall"---小进度圈
style="?android:attr/progressBarStyleHorizontal"---进度条
其中进度条可以是不精确显示进度,类似于过场动画表示正在加载
也可以是精确显示进度,可以按百分比形式呈现
现在想在标题栏里添加进度条。但是出了点问题,现版本开发包,说是默认继承AppcompatActivity,但是用不了
RequestWindowFeature(Window.FEATURE_PROGRESS);
RequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
如果继承Activity,标题栏又没有了。查了一晚上,不知道怎么解决。明天再查查。
2015年12月20日
------------------------------------------------------------