由于我工作的一个项目它需要与API 8工作,我发现了很多关于如何突出一排,因为他们需要的最低API 10个向上是行不通的例子。
所以我环顾四周,并得到了荧光笔通过OnListItemClick工作但我现在的问题是,当出现在列表中有多个项目,它允许被选中多个项目这是不是我想要的
我用下面的突出和未突出显示该行:
if (selectedrow == 0) {
((TextView)v).setBackgroundColor(Color.rgb(0, 153, 204));
selectedrow = 1;
oki.setEnabled(true);
currpos = position;
File fileselected = new File(pathi.get(currpos));
} else {
((TextView)v).setBackgroundColor(Color.TRANSPARENT);
selectedrow = 0;
oki.setEnabled(false);
currpos = -1;
}
当我注意到,他们强调多行我又试图在上面的代码之前,以下几点:
if (currpos != -1 ) {
((ListView)l).smoothScrollToPosition(currpos);
((TextView)v).setBackgroundColor(Color.TRANSPARENT);
((ListView)l).smoothScrollToPosition(position);
selectedrow = 0;
}
我也曾尝试以上如下:
if (currpos != -1 ) {
((ListView)l).setSelection(currpos);
((TextView)v).setBackgroundColor(Color.TRANSPARENT);
((ListView)l).setSelection(position);
selectedrow = 0;
}
编辑*
自定义适配器现在的工作,是如下,但仍荧光笔是一个问题,我希望张贴代码将提供一些线索这光:
public class FileListAdapter extends ArrayAdapter<String> {
private List<String> itemsll;
public FileListAdapter(Context context, int row,
List<String> iteml) {
super(context,row,iteml);
// TODO Auto-generated constructor stub
this.itemsll = iteml;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View viewnull = convertView;
if (viewnull == null) {
LayoutInflater vrow;
vrow = LayoutInflater.from(getContext());
viewnull = vrow.inflate(R.layout.row, null);
}
String currow = itemsll.get(position);
TextView rowtext = (TextView)viewnull.findViewById(R.id.rowtext);
rowtext.setText(currow);
if (currpos == position) {
rowtext.setBackgroundColor(Color.BLUE);
}
return viewnull;
}
public void setSelectedPosition( int pos )
{
currpos = pos; // selectedPos is global variable to handle clicked position
// inform the view of this change
notifyDataSetChanged();
}
}
然后我加入了onItemClick如下:
public void onItemClick( AdapterView<?> arg0,View arg1, int arg2, Long arg3) {
int pos = arg2;
fl.setSelectedPosition(pos);
}
解决了。
很快注册,我无法使用onListItemClick和onItemClick和也作为类是ListActivity我不得不使用列表视图LW = getListView()以再使用onItemClick方法