gpt4 book ai didi

Android ListView 项目选择问题

转载 作者:行者123 更新时间:2023-11-29 22:12:35 25 4
gpt4 key购买 nike

我在 XML 中有两个 ListView,即 lvProgramslvEpisodes。它们水平放置。

我从网络服务中填充这些 ListView。

当 Activity 加载时,我调用 Web 服务来获取 lvPrograms 的数据。当我收到 Programs 时,我会为检索到的列表中的第一个节目加载 Episodes。并将 lvPrograms 的第一个项目设置为选中/突出显示,以向用户显示加载的 Episodes 是用于此节目项目的。我是这样设置的:

private void highlightSelectedProgram(int _previousSelectedProgramIndex, int _currentSelectedProgramIndex) {
ListView allProgramsList = (ListView) findViewById(R.id.allProgramsList);

//Get the last selected List Item
View selectedChild = allProgramsList
.getChildAt(_currentSelectedProgramIndex);

//_previousSelectedProgramIndex & _currentSelectedProgramIndex are to keep track
//of currently/previously selected PROGRAM index


if (selectedChild != null) {

// get selected shape
Drawable shape = getResources().getDrawable(
R.drawable.selected_item_selector);

//change selected item background to be highlighted
selectedChild.setBackgroundDrawable(shape);

//change previous item, if any (is not -1), to normal state
if (_previousSelectedProgramIndex != ._currentSelectedProgramIndex && _previousSelectedProgramIndex != -1) {
TextView previousChild = (TextView) allProgramsList
.getChildAt(_previousSelectedProgramIndex);

previousChild.setBackgroundResource(R.drawable.item_selector);
}
}
}

当用户点击 PROGRAMS 列表项时,我会调用此方法以突出显示其 EPISODES 正在加载到 lvEpisodes ListView 中的项目。

看起来像下图。

enter image description here

仅当 ListView 的项目多于其可见区域时才会出现问题。所以当我点击第一个项目时,它的背景被上面的代码改变了,但是在不可见项目中的其他一些项目也改变了背景。为什么??

我想我错过了一些东西或者处理最初不可见的列表项是不同的。

OR 你可以指导我为被点击的项目声明一个背景选择器......并且只有被点击的项目保持突出显示..所以如果用户点击其他列表中隐藏项目中的项目,然后该项目将突出显示...因此列表中任何时候都必须有一个突出显示的项目...如果可能的话,这会很棒。

由于发布日期临近,我们将不胜感激任何帮助。谢谢

最佳答案

使用类似的东西:

 lvPrograms.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
lvPrograms.setSelector(R.drawable.programs_background);

programs_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@drawable/shape" />
</selector>

关于Android ListView 项目选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9279626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com