当前位置:首页 » 安卓系统 » androidlistview选中效果

androidlistview选中效果

发布时间: 2022-09-08 02:56:20

Ⅰ android listview两种布局,一种单选一种多选,怎样获得选中状态,并存入数据库

setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); // 多选
setChoiceMode(ListView.CHOICE_MODE_SINGLE) // 单选

选择后的效果是要子view支持才可以的。需要checkable的子view才可以,如果你是普通的textview之类的。。可能选中和不选中效果是一样的。
至于写入数据库,android上用sqlite。。。

Ⅱ 如何通过ListView实现多选效果

一.无图无真相

二.关键代码
1.主布局 sample_main.xml(单选和多选切换,设置android:choiceMode,其他不变)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:showDividers="middle"
android:divider="?android:dividerHorizontal">

<TextView style="@style/Widget.DescriptionBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/intro_message" />

<!--
当 ListView 已设置 choiceMode 时,它将允许用户"选择"
一个或多个项目。该框架提供了默认列表项目布局,这显示标准单选按钮或复选框旁边
单行文本:
《 android:choiceMode="singleChoice"》
R.layout.simple_list_item_single_choice 和
《 android:choiceMode="multipleChoice"》
R.layout.simple_list_item_multiple_choice。
应该设置 android: scrollbarStyle (显示和隐藏)
android:scrollbarStyle="outsideInset"不显示
android:scrollbarStyle="insideOverlay"显示
-->
<ListView android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:paddingLeft="@dimen/page_margin"
android:paddingRight="@dimen/page_margin"
android:scrollbarStyle="outsideInset"
android:choiceMode="multipleChoice" /></LinearLayout>

2.item布局

<!--
从 sample_main.xml ListView 有 choiceMode 套,意思说当用户
选择列表项,列表视图将设置为该项目的根视图状态
(此 CheckableLinearLayout)"检查"。请注意,这需要查看
实现的接口。一旦选中根视图,则任何item,
有 plicateParentState 属性设置的将继承此"选中"状态.
--><com.example.android.customchoicelist.CheckableLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:id="@+id/ll_contain"
android:paddingRight="8dp"
android:minHeight="?android:listPreferredItemHeight"
android:gravity="center_vertical">

<TextView android:id="@android:id/text1"
android:plicateParentState="true"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="@color/hideable_text_color" />

<ImageView android:src="@drawable/ic_hideable_item"
android:plicateParentState="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp" /></com.example.android.customchoicelist.CheckableLinearLayout>34

3.自定义单选和多选布局

package com.example.android.customchoicelist;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.widget.Checkable;import android.widget.LinearLayout;/**
*自定义单选和多选布局
*/public class CheckableLinearLayout extends LinearLayout implements Checkable {
private static final int[] CHECKED_STATE_SET = {android.R.attr.state_checked}; private boolean mChecked = false; public CheckableLinearLayout(Context context, AttributeSet attrs) { super(context, attrs);
} //返回选中的状态
public boolean isChecked() { return mChecked;
} //设置选中的状态
public void setChecked(boolean b) { if (b != mChecked) {
mChecked = b;
refreshDrawableState();
}
} //选择开关
public void toggle() {
setChecked(!mChecked);
} //添加选中的条目状态
@Override
public int[] onCreateDrawableState(int extraSpace) { final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); if (isChecked()) {
mergeDrawableStates(drawableState, CHECKED_STATE_SET);
} return drawableState;
}
}343536373839404142434445

4.主要代码MainActivity.java

package com.example.android.customchoicelist;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;/**
*如何创建自定义的单或多选择
* @author 孤狼
* @since 2015-8-3
*/public class MainActivity extends Activity {
ListView listView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.sample_main);
listView =(ListView)findViewById(R.id.listview);
listView.setAdapter(new MyAdapter());
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //获取条目
CheckableLinearLayout linearLayout = (CheckableLinearLayout) view.findViewById(R.id.ll_contain); if (linearLayout.isChecked()) {
Log.e("选中true", position + "");
} else {
Log.e("未选中false", position + "");
} /**对于多选,建议创建集合,用于封装用户选中的条目position,存入时判定 用户来回切换的状态*/
}
});
} /**
* A simple array adapter that creates a list of cheeses.
*/
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() { return Cheeses.CHEESES.length;
} @Override
public String getItem(int position) { return Cheeses.CHEESES[position];
} @Override
public long getItemId(int position) { return Cheeses.CHEESES[position].hashCode();
} @Override
public View getView(int position, View convertView, ViewGroup container) { if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.list_item, container, false);
}
((TextView) convertView.findViewById(android.R.id.text1))
.setText(getItem(position)); return convertView;
}
}
}3435363738394

三.说明
通篇没有多余的废话,不浪费大家的宝贵时间,代码简洁,主要部分都有注释,实际开发中的需求,需要牛牛们自己自定义,发挥,如有疑问,请留言—-孤狼

四.示例源码(由于孤狼使用的是Android studio开发,暂时没有eclipse版)

Ⅲ 在android手机上怎么触发listview中的onItemSelected,不知道怎么选中希望哪位高手帮忙解答,代码如下

onItemSelected在纯触摸屏的手机上是没有效果的,在有硬键盘的手机上按上下键才会有选中效果。

Ⅳ android ListView中有某部分要点击效果,此点击效果是用selector实现,但在ListView中点击其他部分也会有效

tvFileNameAndSize.setText(attachFile.getFileName() + "(" + attachFile.getSize() + "K)");/*将文件名与文件大小添加到显示里*/
v.setTag(attachFile);/*将文件保存到控件里*/

ImageView ivDelete = (ImageView) v.findViewById(R.id.iv_iccfa_del);

ivDelete.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
View parent = (View) v.getParent();/*得到焦点*/
AttachFile file = (AttachFile) parent.getTag();/*将导入到这个位置的文件导出来*/
mFiles.remove(file);/*从自己的集合里移除它*/
mLlAttachFile.removeView(parent);/*从控件里将这个焦点所对应的内容删除*/
}
});
mLlAttachFile.addView(v);
ListView显示的格式是一个TextView加上一个ImageView,这个就是点击那个ImageView时删除这一条记录的部分代码,

Ⅳ Android的ListView如何做到点击其中一项Item就同时把CheckBox设置为选中

1、设置checkbox为不可点击
2、用一个数组维护所有Item选中状态
3、当选中状态发生变化时更新数组
4、当选中状态发生变化时刷新列表
5、根据item的选中状态设置checkbox的选中状态

Ⅵ Android 中的ListView选中项的背景颜色怎么设置

完全可以实现,这用到了Android的Selector(根据组件的状态显示该状态对应的图片,并以此图片作为背景显示)。 把下面的XML文件保存成你自己命名的.xml文件(比如list_bg.xml),注意,这个文件相当于一个背景图片选择器,在系统使用时根据ListView中的列表项的状态来使用相应的背景图片,什么情况使用什么图片我在下面都进行了说明。还有,你可以把它看成是一个图片来使用,放于drawable目录下,配置背景属性android:background="@drawable/list_bg"就能达到你需要的目的了。

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:drawable="@drawable/没有焦点时图片背景" />
<item android:state_focused="true" android:state_pressed="true" <!--双条件-->
android:drawable="@drawable/非触摸模式下获得焦点并单击时的背景图片" />
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@drawable/触摸模式下单击时的背景图片" />
<item android:state_selected="true" android:drawable="@drawable/选中时的图片背景" />
<item android:state_focused="true" android:drawable="@drawable/获得焦点时的图片背景" />
<item android:drawable="@drawable/silver" /> <!--default color -->
</selector>

---------------------------------------------------------------------------------------------------------------

在values下新建一个color.xml<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="darkgray">#808080FF</drawable>
<drawable name="white">#FFFFFFFF</drawable>
<drawable name="silver">#00ffffff</drawable> <!-- 透明色 -->
</resources>

-------------------------------------------------------------------------------------------------------------------------------------------------

main布局文件中的系统 ListView 控件,注意这不是 ListViewItem 控件。

<ListView android:id="@id/android:list" android:layout_width="fill_parent"
android:layout_height="400dip" android:drawSelectorOnTop="false"
android:listSelector="@drawable/list_selector_color"/>
<TextView android:id="@id/android:empty"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Can not find the file!" />

-------------------------------------------------------------------------------------------------------------------

你可以看下源代码ListView列表项背景的默认实现 :

SDK目录\platforms\android-xx\data\res\drawable\list_selector_background.xml

Ⅶ Android listview 点击 是当前选中条变色 其他不变(也就是锁定焦点)这个怎么做

是点击效果还是点后一直变?
点击效果的话用selector,在item的layout中设置背景就ok了;
一直变的话 监听listview的点击事件。

Ⅷ android listview单选如何获取当前选中是否勾选

1、使用checked属性判断选中,代码为if($(this).attr("checked")){alert("选中了");}。
2、jquery获取radio单选按钮的值。以上就是androidlistview单选获取勾选当前选中指的方法。

Ⅸ android listView中textView设置选中效果(A跳到B画面)

找到对应的View的那个控件requestFocus()

Ⅹ android Listview第一个行默认为选中状态,怎么实现按下某一行在没松开时设置其为选中行,选中行为蓝色

1. 你从 A跳转到B的时候 通过 INTENT 传一个值 intent.putStringExtart("selection", 4);
2. 然后在B接受这个值: int selection = getExtart().getIntExtart("selection");
3. 然后设置ListView 选择这个 selection: myListView.setselection(selection);

就OK了

----------- 补充:
刚看太快看错了, 如果是想选中ListView 某一个 TEXTVIEW, 需要这样:

ViewGroupitem=(ViewGroup)mAdapter.getChild(selection);
TextViewtextView=item.findviewById(R.id.textView1);
textview.requestFocus();

前提是要设置这个 textview 的 focusable=true, 还有 focusableInTouchmode = true

热点内容
plsql异常处理 发布:2024-05-20 07:54:47 浏览:541
dreamweaver上传网页 发布:2024-05-20 07:51:24 浏览:461
拍摄车的分镜头脚本 发布:2024-05-20 07:50:15 浏览:136
mg名爵最高配置是哪个 发布:2024-05-20 07:45:11 浏览:375
辅助官网源码 发布:2024-05-20 07:31:48 浏览:865
androidbutton的属性 发布:2024-05-20 07:18:58 浏览:636
查找重复字段的sql 发布:2024-05-20 07:18:17 浏览:302
我的世界创造房子服务器 发布:2024-05-20 06:48:36 浏览:818
小米笔记本存储不够 发布:2024-05-20 06:32:53 浏览:784
dirt5需要什么配置 发布:2024-05-20 06:02:58 浏览:543