日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

listview条目用状态选择器没反应

發(fā)布時間:2025/7/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 listview条目用状态选择器没反应 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

button和imagebutton天生具有“可點(diǎn)擊(click)”、“可按下(press)”的特性,radiobutton具有“可勾選(check)”的特性,但是listview的條目只有“可按下(press)”的特性,所以下面代碼不起作用:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" ><item android:drawable="@drawable/menu_arr_select" android:state_selected="true"/><item android:drawable="@drawable/menu_arr_select" android:state_checked="true"/><item android:drawable="@drawable/menu_arr_normal" /></selector>

?

listview的條目有enabled 特性,所以狀態(tài)選擇器這樣寫:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" ><item android:drawable="@drawable/menu_arr_select" android:state_enabled="true"/><item android:drawable="@drawable/menu_arr_normal" /></selector>

?然后代碼還要做些處理(紅色代碼部分就是需要做的處理):

public class LeftMenuFragment extends BaseFragment {@ViewInject(R.id.lv_list)private ListView lvList;private ArrayList<NewsMenuData> mNewsMenuData;// 側(cè)邊欄網(wǎng)絡(luò)數(shù)據(jù)對象 private int mCurrentPos;// 當(dāng)前被選中的item的位置private LeftMenuAdapter mAdapter;@Overridepublic View initView() {View view = View.inflate(mActivity, R.layout.fragment_left_menu, null);// lvList = (ListView) view.findViewById(R.id.lv_list);ViewUtils.inject(this, view);// 注入view和事件return view;}@Overridepublic void initData() {}// 給側(cè)邊欄設(shè)置數(shù)據(jù)public void setMenuData(ArrayList<NewsMenuData> data) {mCurrentPos = 0;//當(dāng)前選中的位置歸零// 更新頁面mNewsMenuData = data;mAdapter = new LeftMenuAdapter();lvList.setAdapter(mAdapter); lvList.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {mCurrentPos = position;// 更新當(dāng)前被選中的位置mAdapter.notifyDataSetChanged();// 刷新listview// 收起側(cè)邊欄 toggle();// 側(cè)邊欄點(diǎn)擊之后, 要修改新聞中心的FrameLayout中的內(nèi)容 setCurrentDetailPager(position); }});}/*** 設(shè)置當(dāng)前菜單詳情頁* * @param position*/protected void setCurrentDetailPager(int position) {// 獲取新聞中心的對象MainActivity mainUI = (MainActivity) mActivity;// 獲取ContentFragmentContentFragment fragment = mainUI.getContentFragment();// 獲取NewsCenterPagerNewsCenterPager newsCenterPager = fragment.getNewsCenterPager();// 修改新聞中心的FrameLayout的布局 newsCenterPager.setCurrentDetailPager(position);}/*** 打開或者關(guān)閉側(cè)邊欄*/protected void toggle() {MainActivity mainUI = (MainActivity) mActivity;SlidingMenu slidingMenu = mainUI.getSlidingMenu();slidingMenu.toggle();// 如果當(dāng)前狀態(tài)是開, 調(diào)用后就關(guān); 反之亦然 }class LeftMenuAdapter extends BaseAdapter {@Overridepublic int getCount() {return mNewsMenuData.size();}@Overridepublic NewsMenuData getItem(int position) {return mNewsMenuData.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View view = View.inflate(mActivity, R.layout.list_item_left_menu,null);TextView tvMenu = (TextView) view.findViewById(R.id.tv_menu);NewsMenuData item = getItem(position);tvMenu.setText(item.title);if (position == mCurrentPos) {// 被選中tvMenu.setEnabled(true);// 文字變?yōu)榧t色} else {// 未選中tvMenu.setEnabled(false);// 文字變?yōu)榘咨珆return view;}}}

?

轉(zhuǎn)載于:https://www.cnblogs.com/johnsonwei/p/5895217.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的listview条目用状态选择器没反应的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。