您的位置:首页 > 移动开发 > Android开发

喝酒不骑马的Android自学日记(9)-Spinner的实例

2015-12-20 01:13 525 查看
喝酒不骑马的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:
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日

------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息