【问题标题】:Automatic click on ListView if has only one item如果只有一项,则自动单击 ListView
【发布时间】:2013-05-28 10:47:34
【问题描述】:

我正在尝试在 Mysql 数据库中搜索一些数据,然后将其显示为 Listview

当找到超过 1 个结果时,单击其中任何一个将带您进入其各自的详细信息页面。

但是.. 如果列表视图中只有一个结果,我希望直接转到详细信息页面。简而言之,当列表中只有一项时,如何在列表视图上自动调用 onItemClick。

我的 Listview 的 onClickItemListener 如下所示:

    @Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {

    // when a student is selected then the following methods are called

    DetailsFragment.setLUNCH_TYPE(searchResult.get(position).lunchtype);
    Log.d("Lunch type selected", ""+DetailsFragment.getLUNCH_TYPE());
    ((HomeActivity) getActivity()).startStudentSale(searchResult
            .get(position).name.toString(),searchResult
            .get(position).isStudent,searchResult.get(position).id);

    // it was comming null here when running this this need to find out why
    // ((HomeActivity)getActivity()).setmSaleType(SALE_TYPE.SEARCHED_STUDENT);
}

【问题讨论】:

  • 您无需调用 onclick,只需检查数据源的大小,如果 size == 1,则只需调用您从 onclick 调用的方法。
  • 这样做给了我非法状态异常
  • 我是否需要调用 super.onBackPressed();隐藏片段?

标签: android listview android-intent android-listview


【解决方案1】:

当你知道结果集的计数时,说cnt,如果它是1,即

  if(cnt==1){
   Intent intent=new Intent(getApplicationContext(),DetailActivity.class);
   startActivity(intent);
  }

【讨论】:

  • 这样做给了我非法状态异常
  • 我是否需要调用 super.onBackPressed();隐藏片段?
  • 你在编的哪一部分做这个?
  • 谢谢,它正在工作。你知道如何停止 asynctaskloader 或重置 asynctask loader 吗?
猜你喜欢
  • 1970-01-01
  • 2019-07-25
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多