这里主要说一下,ListView支持OnItemClickListener事件,而Spinner不支持,Spinner中OnItemSelectedListener和ListView中OnItemSelectedListener的实现是不一样的,
个人感觉Spinner中的OnItemSelectedListener跟ListView中的OnItemClickListener实现应该类似,但不知为何要用OnItemSelectedListener而不用OnItemClickListener这个名字,请知道的朋友指点一下。
另外,你可以在ListView下面配置一个TextView,设置它的id属性为"@+id/android:empty",只要程序看到该ID,就会隐藏这个Widget配置,大家可以试试。
如果你的Activity是继承的ListActivity,并且你自定义了一个layout,那么你必须在这个layout里面定义一个ListView,并且将它的ID设置成android内置的id(android:id="@android:id/list")相关解释都在代码中,不多说了。
package com.kevin.listview;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
public class Main extends Activity {
private String[] week = new String[]{
"sunday",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday"
};
private LinearLayout layout;
private TextView tv_title;
private ListView listView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv_title = (TextView) findViewById(R.id.tv_title);
listView = (ListView) findViewById(R.id.listView1);
listView.setBackgroundColor(Color.LTGRAY);
// 创建adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_simple_list_item,week);
/*
* 如果你希望选择一个值以上
*/
// listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
//ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice,week);
// 添加打ListView
listView.setAdapter(adapter);
// 鼠标滚轮滚动事件
listView.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
System.out.println("onItemSelected");
tv_title.setText("你选择的是: " + parent.getSelectedItem().toString());
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
// 鼠标单击事件(Spinner不支持该事件)
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
System.out.println("onItemClick");
tv_title.setText("你选择的是: " + ((CheckedTextView)view).getText().toString());
}
});
}
}
分享到:
相关推荐
在Android开发中,ListView是一种常用的视图组件,用于展示大量数据列表。当需求涉及列表中的每个条目本身也需要展示一个子列表时,我们就会遇到ListView的嵌套问题。本教程将详细讲解如何在Android Studio环境下...
在Android开发中,ListView是一种常用的UI组件,用于展示大量数据列表。当需要在ListView中实现更复杂的布局,比如一个ListView嵌套另一个ListView时,我们可能会遇到“全选”和“多选”的需求。这个场景常见于例如...
### Android-ListView中嵌套(ListView)控件兼容问题 #### 背景与问题描述 在Android开发中,有时我们需要在`ListView`中嵌套另一个`ListView`以实现更复杂的用户界面设计。然而,在实际操作过程中可能会遇到一些...
在C#编程中,ListView控件是一个非常常用的组件,它用于显示数据集合,并且提供了多种视图模式,如图标、小图标、详细信息等。在这个"C# ListView使用例子ListView排列方式演示"中,我们将深入探讨如何利用ListView...
在Android开发中,ListView是一种常用的UI组件,用于展示大量数据列表。在实际应用中,我们经常需要对ListView进行自定义,比如在每个列表项中添加图片和按钮,以增加交互性和功能多样性。本文将深入探讨如何在...
在VB(Visual Basic)编程环境中,ListView控件是一种常用且功能强大的组件,它允许开发者以列表形式展示数据。在默认情况下,ListView控件通常只支持读取操作,但通过一些扩展和自定义,我们可以实现其列数据的编辑...
在Android开发中,ListView是一种常见的视图组件,用于展示大量数据列表。然而,在某些复杂的界面设计中,我们可能需要在一个ListView中嵌套另一个ListView,这就涉及到"ListView嵌套"的技术。这种技术可以用来构建...
ListView是Android平台上常见的一种列表控件,用于展示大量数据的列表形式。在移动应用开发中,为了提升用户体验,经常需要实现类似微博那样可以下拉刷新的功能。本教程将详细介绍如何在Android中实现ListView的下拉...
ListView是Android平台上一个非常重要的控件,主要用于展示大量的数据列表,具有良好的滚动性能和可定制性。本笔记将深入探讨ListView的基本使用,帮助初学者掌握这个控件的关键知识点。 一、ListView的基本结构 ...
在Windows Presentation Foundation (WPF) 中,ListView 是一个强大的控件,用于展示数据集合,并提供了多种自定义样式和布局选项,使得用户界面更加美观和功能丰富。本教程将深入探讨如何利用WPF ListView 创建漂亮...