Android 更改Listview焦点
当单击列表视图中的按钮“内部不在列表项中”时,我想关注下一个列表项。 我试过这样做,但不起作用:Android 更改Listview焦点,android,listview,Android,Listview,当单击列表视图中的按钮“内部不在列表项中”时,我想关注下一个列表项。 我试过这样做,但不起作用: vegetableList.setAdapter(new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, vegList)); vegetableList.setOnItemClickListener(new OnItemClickListener() {
vegetableList.setAdapter(new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, vegList));
vegetableList.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
current_veg_item = vegList[position];
parent.getChildAt(position).setBackgroundColor(Color.parseColor("#33cc99"));
if (save != -1 && save != position)
{
parent.getChildAt(save).setBackgroundColor(Color.WHITE);
}
save = position;
}
});
当我点击按钮时,如何聚焦当前所选项目的下一个项目?我认为您的代码应该可以工作,但为什么不工作我不知道& 你可以这样试试
ItemAdapter itemAdapter = new ItemAdapter (vegList);
list.setAdapter(itemAdapter );
public class ItemAdapter extends BaseAdapter
{
ArrayList<String> vegList;
public ItemAdapter(ArrayList<String> vegList)
{
this.vegList= vegList;
}
@Override
public int getCount()
{
return vegList.size();
}
@Override
public Object getItem(int position)
{
return position;
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
convertView = getLayoutInflater().inflate(R.layout.item_cell, null);
TextView tvItem = (TextView) convertView.findViewById(R.id.tvItem);
tvItem .setText(vegList.get(position));
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
current_veg_item = vegList[position];
convertView.setBackgroundColor(Color.parseColor("#33cc99"));
if (prvsview!=null && prvsview!= convertView)
{
prvsview.setBackgroundColor(Color.WHITE);
}
prvsview= convertView;
}
});
return convertView;
}
我想这只是我已经做过的事情的一个替代品。我已经做了背景变化时,重点。当一个外部按钮点击时,我想要的是聚焦下一个列表项。是的,这是你所做的选择。我没有正确地获取你的Que,你发布的内容不起作用,所以我必须告诉你替代方法。是的,你可以试试。全局声明int save=-1变量。
ItemAdapter itemAdapter = new ItemAdapter (vegList);
list.setAdapter(itemAdapter );
public class ItemAdapter extends BaseAdapter
{
ArrayList<String> vegList;
public ItemAdapter(ArrayList<String> vegList)
{
this.vegList= vegList;
}
@Override
public int getCount()
{
return vegList.size();
}
@Override
public Object getItem(int position)
{
return position;
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
convertView = getLayoutInflater().inflate(R.layout.item_cell, null);
TextView tvItem = (TextView) convertView.findViewById(R.id.tvItem);
tvItem .setText(vegList.get(position));
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
current_veg_item = vegList[position];
convertView.setBackgroundColor(Color.parseColor("#33cc99"));
if (prvsview!=null && prvsview!= convertView)
{
prvsview.setBackgroundColor(Color.WHITE);
}
prvsview= convertView;
}
});
return convertView;
}
mList.performItemClick(
mList.getAdapter().getView(mActivePosition, null, null),
mActivePosition,
mList.getAdapter().getItemId(mActivePosition));