當前位置:首頁 » 安卓系統 » 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

熱點內容
原生安卓開機動畫在哪裡 發布:2024-05-09 03:52:19 瀏覽:394
微信收藏在哪個文件夾 發布:2024-05-09 03:47:03 瀏覽:826
ftp遠程登錄 發布:2024-05-09 03:44:40 瀏覽:227
linuxoracle配置環境變數配置 發布:2024-05-09 03:44:38 瀏覽:499
分類信息網站的源碼 發布:2024-05-09 03:31:18 瀏覽:99
sqlupdate日期 發布:2024-05-09 03:27:14 瀏覽:880
java培訓有人要嗎 發布:2024-05-09 03:21:16 瀏覽:970
c語言多次輸入數據 發布:2024-05-09 03:12:50 瀏覽:738
pythonide使用 發布:2024-05-09 02:56:52 瀏覽:350
社區電商源碼 發布:2024-05-09 02:33:00 瀏覽:150