【问题标题】:Change Listview focus更改列表视图焦点
【发布时间】:2014-06-26 10:11:50
【问题描述】:

当单击列表视图的按钮(外部-不在列表项中)时,我想专注于下一个列表项。 我试过这样但它不起作用:

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; 
        }
});

按钮OnClickListener

OnClick{
    vegetableList.setItemChecked(3, true);
}

当我点击按钮时如何聚焦当前选中项目的下一个项目?

【问题讨论】:

    标签: android listview


    【解决方案1】:
    mList.performItemClick(
            mList.getAdapter().getView(mActivePosition, null, null),
            mActivePosition,
            mList.getAdapter().getItemId(mActivePosition));
    

    【讨论】:

      【解决方案2】:

      我认为您的代码应该可以工作,但为什么不工作我不知道 &
      你可以试试这样。

      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;
      }
      

      【讨论】:

      • 我认为这只是我已经完成的替代方案。专注时我已经完成了背景更改。我想在单击外部按钮时关注下一个列表项。
      • 是的,这是您所做的替代方案。而且我没有正确地得到你的问题而且你发布的内容不起作用,所以我必须告诉你替代方法。
      • 是的,你可以试试。全局声明 int save = -1 变量。
      猜你喜欢
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 2011-10-23
      • 2014-05-29
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      相关资源
      最近更新 更多