import java.util.List;
import java.util.Map;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.tcad.util.WebTools;
public class MyArrayAdapter extends BaseAdapter{
private static List<Map<String,String>> list;
private LayoutInflater mInflater;
private ViewHolder holder;
//alertdialog 被选中初始化false
private static boolean[] isFocused ;
private static int whichClick = -1;
public MyArrayAdapter(Context context,List<Map<String,String>> objects){
list = objects;
mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
isFocused = new boolean[objects.size()];
for(int i=0;i<objects.size();i++){
isFocused[i] = false;
}
}
public int getCount() {
return list.size();
}
public Object getItem(int position) {
return list.get(position);
}
public long getItemId(int position) {
return position;
}
public void changeBg(int position){
isFocused[whichClick==-1?0:whichClick] = false;
whichClick = position;
isFocused[position] = true;
notifyDataSetChanged();
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.musiccategories, null);
holder = new ViewHolder();
holder.s_Name = (TextView) convertView.findViewById(R.id.s_name);
convertView.setTag(holder);
} else {
// Get the ViewHolder back to get fast access to the TextView
// and the ImageView.
holder = (ViewHolder) convertView.getTag();
}
convertView.setBackgroundResource(isFocused[position]?android.R.drawable.alert_dark_frame:android.R.drawable.alert_light_frame);
holder.s_Name.setText(list.get(position).get(WebTools.SON_GEMING));
return convertView;
}
static class ViewHolder {
TextView s_Name;
}
}
掉 MyArrayAdapter 的changeBg(int)就可以改变该项的背景
分享到:
相关推荐
你可以通过设置`android:listSelector`属性来定制选中状态下的背景颜色或图片。例如,在XML布局文件中,可以在ListView标签内添加以下代码: ```xml android:id="@+id/my_listview" android:layout_width=...
本教程将详细介绍如何在Android中实现圆角ListView并处理选中状态,基于提供的"Android列表之圆角ListView选中(二)"项目。 首先,我们需要理解ListView的基本用法。ListView通过Adapter来绑定数据,并通过...
在适配器中,我们需要维护一个当前选中位置的变量,并在数据改变或选中状态变化时通知RecyclerView。通过调用`notifyDataSetChanged()`或更精确的`notifyItemChanged()`方法,我们可以触发RecyclerView重新布局和...
此外,为了实现固定的选中效果,我们需要禁用ListView的默认选择模式,即`CHOICE_MODE_NONE`,防止ListView自动处理选中状态。 ```xml android:id="@+id/list_view" android:layout_width="match_parent" ...
当用户触摸一个项时,ListView需要改变选中状态,通常显示不同的背景色或图像。 自定义选中效果的关键在于为ListView的每一项设置不同的状态选择器(Selector)。状态选择器是基于Drawable的,它可以定义不同状态下...
然后,在布局XML文件中声明CheckableTextView,设置相应的属性,如初始选中状态、颜色等。在代码中,可以通过 findViewById() 获取实例,调用相关方法来操作选中状态。 4. **应用场景** - 列表选择:在ListView或...
5. **数据绑定**:如果你的数据源是一个列表(如ArrayList),在适配器中,你可以跟踪每个条目的选中状态。这样,即使ListView重新加载或滚动,也能保持正确的选中状态。 6. **TestShowList**:这个文件名可能是指...
- 选中状态同步:在GridView之外的地方(如Action Bar上的菜单项)也要反映当前的选中状态,需要在Adapter和外部进行双向通信。 6. 其他注意事项: - 数据刷新:当数据源发生变化时,记得调用Adapter的...
在Adapter的`getView()`方法中,可以根据数据源来设置每个`CheckableTextView`的选中状态。 此外,如果需要在多个`Checkable`视图间实现多选或单选功能,可以使用`CheckableGroup`类,如`RadioGroup`或自定义的`...
首先,我们需要为`RecycleView`的每个条目定义一个数据模型类,增加一个表示选中状态的布尔属性,例如`isSelected`: ```java public class ItemModel { private String title; private boolean isSelected; //...
9. **数据操作**:在用户完成选择后,可以通过遍历Adapter的数据集和选中状态列表,找出所有被选中的条目,执行相应的业务逻辑,如批量删除。 10. **广播接收者或通知**:如果需要在其他组件或者Activity之间共享...
在getView()方法中,根据currentSelectedPosition判断当前item是否被选中,然后通过修改背景颜色、文字样式等方式显示选中状态。 在"listviewTest"这个项目中,你可能包含了测试这些功能的代码。通常,这个项目会...
为了实现这一功能,开发者可能使用了`Adapter`(适配器)来绑定数据到`ExpandableListView`,并且在适配器中维护每个子项的选中状态。适配器中的`setChecked()`方法可以用来改变子项的选中状态。 在项目中,`...
此外,为了提供良好的用户体验,开发者可能还对UI进行了优化,例如添加选中状态的视觉反馈,或者在全选/全取消时自动切换所有子项的CheckBox状态。这可能涉及自定义ViewGroup、动画效果等。 总之,"Android 扩展 带...
- 可以添加动画效果,比如在切换选中状态时添加淡入淡出或缩放效果,以增加视觉吸引力。 - 确保在滚动过程中,选中状态的改变不会导致用户混淆。例如,当Item离开屏幕时取消高亮,只有在新的Item完全可见时才设置...
1. 创建自定义Adapter:首先,你需要创建一个继承自MultiChoiceAdapter的自定义Adapter,重写其中的getView方法,为每个列表项设置复选框或其他选中状态的视觉元素。 2. 设置Adapter:将自定义的Adapter设置到...
在getView()方法中,根据当前item的位置和之前item的选择状态来决定当前item的选中状态。 3. **复选框CheckBox**: 在ListView的每个Item中,需要包含一个CheckBox,作为用户选择的触发器。通过设置CheckBox的...
- 为了实时显示已选择的数量,可以在数据源中增加一个计数器,每当CheckBox状态改变时,根据新的选中状态更新计数器。同时,在UI上设置一个TextView来显示这个计数。 7. **优化性能** - ListView的复用机制可能...
当用户需要在列表中选择一个项目,并保持其他项未选中状态时,就需要自定义ListView来实现这一特性。这通常涉及到对Adapter的扩展和对View的定制。 二、自定义Adapter 首先,我们需要创建一个新的Adapter类,继承自...
- **状态维护**:MultiChoiceAdapter通过维护一个选中状态的集合(通常是一个SparseBooleanArray)来跟踪用户的选择。当用户点击条目时,会更新这个集合,并同步更新条目的视觉选中状态。 - **选择模式**:...