Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 在“ListFragment”中突出显示所选项目?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经发布了相同的问题几次,但还没有解决.我有一个ListFragment,我想突出显示列表中选定的项目.我已经提出使用“选择器”的建议.我不明白如何使用这个选择器.我的ListFragment类是:
// Create an adapter with list of stores and populate the list with
        // values
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,StoreList);
        setlistadapter(adapter);
        mDbHelper.close();
    }

    /*
     * (non-JavadoC)
     * 
     * Handles the event when an item is clicked on left pane,performs action
     * based on the SELEction in left pane
     *  
     * @see android.app.ListFragment#onListItemClick(android.widget.ListView,* android.view.View,int,long)
     */
    @Override
    public void onListItemClick(ListView l,View v,int position,long id) {
        String SELEctedStore = (String) getlistadapter().getItem(position);
        DetailFragment fragment = (DetailFragment) getFragmentManager()
                .findFragmentById(R.id.detailFragment);
        if (fragment != null && fragment.isInLayout()) {
            v.setBACkgroundColor(getresources().getColor(R.color.bLUE));
            // passes SELEctedStore to detail fragment  
            fragment.setText(SELEctedStorE);

            // getItemList(SELEctedStorE);

        }

使用setBACkground永久设置颜色,但是当选择另一个项目时,我希望它消失.
我了解如何在ListView中使用选择器,但在我的情况下,如果我没有为Lis​​tview定义任何xml,那么我将如何使用“SELEctor”?我正在使用预定义的android.R.layout.simple_list_item_1.

解决方法

以下为我工作:

RES /颜色/ menu_highlight.xml

<?xml version="1.0" encoding="utf-8"?>
<SELEctor xmlns:android="http://@R_673_10906@mas.android.com/apk/res/android">
  <item 
    android:state_pressed="true"
    android:drawable="@color/red"  />
  <item
    android:state_SELEcted="true"
    android:drawable="@color/red" />
  <item 
    android:drawable="@color/white" />
</SELEctor>

RES /值/ colors.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources> 
<color name="white">#FFFFFF</color>
<color name="red">#FF0000</color>
</resources>

res / layout / menuitem.xml ::(列表中的每个项目的XML)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://@R_673_10906@mas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">
    <TextView
        android:id="@+id/textmenu"
        android:layout_height="wrap_content"
        android:text="text"
        android:textColor="#FFFFFF" 
        android:BACkground="@color/menu_highlight"
        android:visibility="visible"
        android:layout_width="fill_parent" />
</LinearLayout>

最后,在ListFragment类中,添加View prevIoUs并将以下代码添加到onlistitemclick函数中(在ListFragment: highlight selected row中提到)

public class MenuListFragment extends ListFragment{

View prevIoUs;

@Override
    public void onListItemClick(ListView l,long id) {
        super.onListItemClick(l,v,position,id); 
       //Logic to highlight SELEcted item
        prevIoUs.setSELEcted(false);
        v.setSELEcted(true);
        prevIoUs=v;
    }

}

大佬总结

以上是大佬教程为你收集整理的android – 在“ListFragment”中突出显示所选项目?全部内容,希望文章能够帮你解决android – 在“ListFragment”中突出显示所选项目?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。