当前位置:首页 » 安卓系统 » androidlistview的事件

androidlistview的事件

发布时间: 2025-08-30 18:16:15

㈠ android 的ListView中,如何判断其内容已滚动到最顶部或者最底部

是通过ListView的OnScrollListener事件中判断的。当listView滚动的时候就会回调OnScrollListener方法。

以下为示例代码(完整代码查看附件):

  1. 得到lisView实例

ListViewlistView = (ListView) findViewById(R.id.listview);


2.给ListView注册OnScrollListener事件

listView.setOnScrollListener(new OnScrollListenerImple());


3.实现OnScrollListener 接口,处理事件。

private class OnScrollListenerImple implements OnScrollListener {

@Override

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

//如果当前列表的数量等于查询的总数量,则不做任何操作

if(mSimpleAdapter.getCount() >= page.getRowCount()){

return;

}

if (view.getLastVisiblePosition() == (totalItemCount - 1)) { //判断是否滑动到最底部

//已经滑动最底部了。

}

}


@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

}

}


㈡ 请问在android的listView中怎么动态加入radioButton和Button按钮

在Android的ListView中动态加入RadioButton和Button按钮,首先需要一个bean来存储数据。这个bean里可以包含一个标志位,用来标记是要显示RadioButton还是Button。在自定义的Adapter中的getView方法里,根据这个标志位来决定显示哪种类型的按钮。为了实现这一点,布局文件中需要包含两个按钮,一个RadioButton和一个Button,只是在初始状态下,一个按钮会被隐藏。具体来说,可以通过设置这些控件的visibility属性来实现。

当软件的下载状态或安装状态发生变化时,bean中的标志位会随之更新。此时,只需调用Adapter的notifyDataSetChanged()方法,ListView就会重新绘制,显示最新的按钮。

举个例子,假设你的bean类如下所示:

public class MyBean {
private int type; // 0表示RadioButton,1表示Button
private String text;
...
}

在Adapter的getView方法里,你可以这样处理:

public View getView(int position, View convertView, ViewGroup parent) {
MyBean bean = getItem(position);
View view = LayoutInflater.from(context).inflate(R.layout.item_layout, null);
RadioButton radioButton = view.findViewById(R.id.radio_button);
Button button = view.findViewById(R.id.button);
if (bean.getType() == 0) {
button.setVisibility(View.GONE);
radioButton.setVisibility(View.VISIBLE);
} else {
radioButton.setVisibility(View.GONE);
button.setVisibility(View.VISIBLE);
}
return view;
}

这样,每次数据发生变化时,ListView会自动更新显示的内容。

㈢ Android listview的item点击事件怎么失效了

原因多半是由于在自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。

这时候就可以使用descendantFocusability来解决啦,API描述如下:

android:descendantFocusability

Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.

Must be one of the following constant values.

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。念瞎告

属性仔明的值有三种:

  1. beforeDescendants:viewgroup会优先其子类控件而获取到焦点

  2. afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

  3. blocksDescendants:viewgroup会神搏覆盖子类控件而直接获得焦点

通常用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了

㈣ android 在一个listview中怎么给每一项的button监听点击事件

首先你说的东西是一个误区,不是每一项button而是list里面的item,其次,将item进行点击监听,我写一个点击监听的方法
mylistview = (ListView)findViewById(R.id.listview);
list.add("LinearLayout");
list.add("AbsoluteLayout");
list.add("TableLayout");
list.add("RelativeLayout");
list.add("FrameLayout");
ArrayAdapter<String> myArrayAdapter = new ArrayAdapter<String>
(this,android.R.layout.simple_list_item_1,list);
mylistview.setAdapter(myArrayAdapter);
mylistview.setOnItemClickListener(new OnItemClickListener(){

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
if(list.get(arg2).equals("LinearLayout"))
{
Intent intent = new Intent("com.wps.android.LINEARLAYOUT");
startActivity(intent);
}
if(list.get(arg2).equals("AbsoluteLayout"))
{
Intent intent = new Intent("com.wps.android.ABSOLUTELAYOUT");
startActivity(intent);
}
if(list.get(arg2).equals("TableLayout"))
{
Intent intent = new Intent("com.wps.android.TABLELAYOUT");
startActivity(intent);
}
if(list.get(arg2).equals("RelativeLayout"))
{
Intent intent = new Intent("com.wps.android.RELATIVELAYOUT");
startActivity(intent);
}
if(list.get(arg2).equals("FrameLayout"))
{
Intent intent = new Intent("com.wps.android.FRAMELAYOUT");
startActivity(intent);
}
}

});

热点内容
python入门知乎 发布:2025-08-31 00:58:06 浏览:201
浪潮全闪存储 发布:2025-08-31 00:56:35 浏览:740
外部存储分析 发布:2025-08-31 00:49:36 浏览:251
2栋3单元会用什么wifi密码 发布:2025-08-31 00:47:45 浏览:328
线切割机床编程 发布:2025-08-31 00:42:31 浏览:858
数据库行迁移 发布:2025-08-31 00:35:36 浏览:907
java分布式事务 发布:2025-08-30 23:53:10 浏览:698
安卓区怎么看荣耀排行榜 发布:2025-08-30 23:32:12 浏览:871
江铃算法岗 发布:2025-08-30 23:28:31 浏览:140
ftp服务器上传速度 发布:2025-08-30 23:19:06 浏览:250