解决方案 »
- 如何实现一个基于sharepreference存储的ContentProvider,如何调用
- android draw 多线程 变量同步问题急啊
- 请教:如何访问历史堆栈中的页面,而不引起循环
- 求APIDemos
- Intent键值问题
- 请教大神,快播的雷达功能是怎么实现的,或者工作原理
- apache httpclient4怎么实现同时上传多个文件
- 怎么通过android gridview 根据点击的图片,确定事件
- 关于Activity和fragment的标题的疑问
- 坑爹的Android4.4,难道我发现了系统BUG?高手来看一下
- [ Help ] Android Screen size issue
- 如果调用系统剪裁功能
m_ListView.setOnItemClickListener(new ListView.OnItemClickListener(){
//重载click函数,实现需要的功能
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
try
{
arg1.setBackgroundColor(Color.RED);
String sUser = m_ListData.get(arg2);
Toast.makeText(select1.this, "点击了"+sUser,Toast.LENGTH_SHORT).show();
}
catch(Exception e)
{
e.printStackTrace();
}
});m_ListView.setVisibility(View.VISIBLE);
}
这个第一次按还行,第二次就混乱了啊~怎么办?
只要改变view的背景就好了 我写了个一下 好像没什么问题 混乱是什么意思?
就是第一次点击View的时候,背景色是变色的,第二次点击其他行的时候,第一次点击行和其他一行(非第二次点击行)颜色是红色的
onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
{
arg1.setBackgroundColor(Color.RED);
}
这一句 仅仅是在你点击某个item的时候 将该行的背景颜色变红色
你第一次点击第一行 那么第一行变红色, 你在去点击其他行其他行变红 你要是想达到其他效果要自己家控制的
不是,混乱的意思是,listview里有3行,我第一次点击第2行,第2行变红色;第二次点击第3行,结果是第1行和第2行变成红色,第3行没变色...
long arg3) {
try
{
//arg0.setBackgroundColor(Color.TRANSPARENT);
arg0.clearFocus();
arg0.setFocusable(true);
arg0.setFocusableInTouchMode(true);
arg0.requestFocus();
arg0.requestFocusFromTouch();
arg0.setSelection(arg2);...
}
}
String []str = {"11","22","33"};
ArrayAdapter<String> adapter1=new ArrayAdapter<String> (demo.this,R.layout.list_view, str);
listview.setAdapter(adapter1);
listview.setItemsCanFocus(true);
listview.setOnItemClickListener(new ListView.OnItemClickListener(){ @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
arg1.setBackgroundColor(Color.RED);
}});应该是你其他代码上有什么逻辑错误, 单这个功能是正确的
/**
* 改变View的背景颜色
* @param view : 需要改变背景的view对象
* itemView: 记录上一次改变背景的item
*/
private void changeItemColor(View view){
if(itemView == null){
itemView = view;
view.setBackgroundResource(R.drawable.news_active);
}else{
itemView.setBackgroundColor(Color.alpha(0));
view.setBackgroundResource(R.drawable.news_active);
itemView = view;
}
}
这个是在自定义适配器中使用的,楼主可以试一下
ListView最好是写自定义适配器,不然很多功能都没法实现的。
long arg3) {
try
{
for(int i=0;i<arg0.getCount();i++){
View v=arg0.getChildAt(arg0.getCount()-1-i);
if (arg2 == i) {
v.setBackgroundColor(0xFFB679D4);
} else {
v.setBackgroundColor(Color.TRANSPARENT);
}
}
...
}
}