过滤后的列表项将打开原始列表项的活动

2024-01-10

经过大量时间在这里和其他地方的搜索后,我无望找到解决方案。

所以这是我的问题。

我创建了一个列表视图,并在其之上添加了一个搜索栏。

当我使用搜索栏来过滤结果时...当我单击第 7 项时,它总是从第一个活动开始,而不是打开特定的单击活动,即 7。

我期待着你们的帮助;因为我需要它!


public class Group extends ListActivity {

 // ArrayList thats going to hold the search results
ArrayList<HashMap<String, Object>> searchResults;

 // ArrayList that will hold the original Data
ArrayList<HashMap<String, Object>> originalValues;
LayoutInflater inflater;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grouplist);
final EditText searchBox = (EditText) findViewById(R.id.searchBox);
ListView playersListView = (ListView) findViewById(android.R.id.list);


inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

final EditText searchBox = (EditText) findViewById(R.id.searchBox);
ListView playersListView = (ListView) findViewById(android.R.id.list);

inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

// these arrays are just the data that
// I'll be using to populate the ArrayList
String names[] = {/*list of names*/ };
String teams[] = {/*list of teams*/};
Integer[] photos = {R.drawable.... /*list of drawables*/};
Integer[] id ={/*Position*/};

 originalValues = new ArrayList<HashMap<String, Object>>();

// temporary HashMap for populating the Items in the ListView
HashMap<String, Object> temp;

// total number of rows in the ListView
int noOfPlayers = names.length;

// now populate the ArrayList players
for (int i = 0; i < noOfPlayers; i++) {
temp = new HashMap<String, Object>();

temp.put("name", names[i]);
temp.put("team", teams[i]);
temp.put("photo", photos[i]);
temp.put("id", id[i]);

// add the row to the ArrayList
    originalValues.add(temp);
 }
    // searchResults=OriginalValues initially
  searchResults = new ArrayList<HashMap<String, Object>>(originalValues);

final CustomAdapter adapter = new CustomAdapter(this, R.layout.players, searchResults);

 // finally,set the adapter to the default ListView
playersListView.setAdapter(adapter);
searchBox.addTextChangedListener(new TextWatcher() {


public void onTextChanged(CharSequence s, int start, int before, int count) {
    // get the text in the EditText
    String searchString = searchBox.getText().toString();
    int textLength = searchString.length();

    // clear the initial data set
    searchResults.clear();

    for (int i = 0; i < originalValues.size(); i++) {
        String playerName = originalValues.get(i).get("name").toString();
        if (textLength <= playerName.length()) {
            // compare the String in EditText with Names in the
            // ArrayList
            if (searchString.equalsIgnoreCase(playerName.substring(0, textLength)))
                searchResults.add(originalValues.get(i));
        }
    }

    adapter.notifyDataSetChanged();
}

public void beforeTextChanged(CharSequence s, int start, int count,  int  after) {

}

public void afterTextChanged(Editable s) {

}
});


// listening to single list item on click
    playersListView.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view,      int position, long id) {

        int pos=Integer.ParseInt(searchResults.get(position).get("id").toString());
             switch (pos) {
              case 0:
               Intent newActivity = new Intent(TeamsList.this, Barca.class);
               startActivity(newActivity);
               break;
              case 1:
               etc...
             }
       }
    }
 });

}

自定义适配器类:

private class CustomAdapter extends ArrayAdapter<HashMap<String, Object>> {

public CustomAdapter(Context context, int textViewResourceId, ArrayList<HashMap<String, Object>> Strings) {

// let android do the initializing :)
super(context, textViewResourceId, Strings);
}

// class for caching the views in a row
private class ViewHolder {
ImageView photo;
TextView name, team;

}

ViewHolder viewHolder;

@Override
public View getView(int position, View convertView, ViewGroup parent) {

if (convertView == null) {
    convertView = inflater.inflate(R.layout.players, null);
    viewHolder = new ViewHolder();

    // cache the views
    viewHolder.photo = (ImageView) convertView.findViewById(R.id.photo);
    viewHolder.name = (TextView) convertView.findViewById(R.id.name);
    viewHolder.team = (TextView) convertView.findViewById(R.id.team);

    //Take one textview in listview design named id
    viewHolder.id = (TextView) convertView.findViewById(R.id.id);


    // link the cached views to the convert view
    convertView.setTag(viewHolder);

  } else 
    viewHolder = (ViewHolder) convertView.getTag();

 int photoId = (Integer) searchResults.get(position).get("photo");

 // set the data to be displayed
viewHolder.photo.setImageDrawable(getResources().getDrawable(photoId));
viewHolder.name.setText(searchResults.get(position).get("name").toString());
viewHolder.team.setText(searchResults.get(position).get("team").toString());
viewHolder.id.setText(searchResults.get(position).get("id").toString());


// return the view to be displayed
return convertView;

    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

过滤后的列表项将打开原始列表项的活动 的相关文章

  • 在第一个框中输入字符后,将焦点转到下一个框

    我必须实现一个应用程序 其中我设置了较小的值edittext用于输入 PIN 码和手机号码 每个编辑文本一次包含 1 个字符 现在 当我运行这个应用程序时 我发现对于每个框 我需要将焦点放在每个框上edittext 因此 在这种情况下 是否
  • 位图背景图像应支持哪些屏幕尺寸/密度组合?

    我正在编写一个应用程序 我需要一些全屏位图背景 基于我天真的阅读支持多屏 http developer android com guide practices screens support html在 Android 文档中 为了涵盖我的
  • 使用busybox在后台安装apk

    我可以在 root 设备上使用 busybox 在后台安装 apk 吗 我看到类似的东西 但它不起作用 process install CommandCapture command new CommandCapture 0 chmod 77
  • putExtra() 和 setData() 之间的区别

    putExtra 和 setData 有什么区别 我已经阅读了 android 文档 但没有太大帮助 还有之前的一个问题Intent setData 与 Intent putExtra https stackoverflow com que
  • 如何在android中批量插入sqlite

    我正在使用 SQLiteOpenHelper 进行数据插入 我需要插入2500个id和2500个名字 所以花费了太多时间 请任何人帮助我如何减少插入时间 我们可以一次插入多条记录吗 任何人都可以帮助我 先感谢您 代码 public clas
  • Android 片段之间的阴影分隔符

    我有一个类似于平板电脑的 ICS Gmail 应用程序的布局 ListFragment左边是内容 右边是内容 我想知道如何构建布局 使两个片段之间有一个阴影分隔符 就像在 Gmail 应用程序中一样 如下所示 另外 由于这适用于这个问题 我
  • 尝试获取屏幕上绘制的每个随机圆圈的 x、y 坐标

    您好 我正在制作一款游戏 该游戏将在屏幕上创建随机圆圈 随机创建的圆圈的值为红色或绿色 我的问题是 我希望不仅能够确定用户何时单击其中一个圆圈 而且还能够确定他们最终单击的圆圈 红色或绿色 下面是我的代码 我的主要问题是试图找到将要绘制的圆
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • 无法在 Android 上编译 avahi

    我是交叉编译的新手 我被分配了使用android补丁的任务http avahi org ticket 354 http avahi org ticket 354将 avahi 核心编译为 android ndk build avahi co
  • 在没有 BluetoothManagerCallback 的情况下调用 getBluetoothService

    我正进入 状态getBluetoothService called with no BluetoothManagerCallback在我的 Android 应用程序中经常出现错误 我不知道是什么原因导致这个或任何有关蓝牙管理器回调的事情 谁
  • 如何在 Android Studio 中构建项目测试目录?

    目前还没有这方面的约定 但是现在我如何构建 Android Studio 的测试目录呢 Android 测试基础 http developer android com tools testing testing android html页面
  • Android WebView文件上传

    我正在开发一个 Android 应用程序 基本上它是一个WebView和一个进度条 Facebook 的移动网站 m facebook com 已加载到WebView 当我单击 选择文件 按钮上传图像时 没有任何反应 我已经尝试了所有的解决
  • ProgressBar.setInminateDrawable() 不起作用

    当我尝试更改我的 indeteminateDrawable 进度条就消失了 我必须更改我的进度条的可绘制对象 我尝试了invalidate requestLayout等 我不知道如何解决它 谢谢 这里的代码 progressBar setI
  • 垂直从上到下线手势检测器

    我用的是 手势工具 注意到对于垂直从上到下的线无法检测 因为我在代码中使用生成的手势文件 如下所示 但无法检测垂直从上到下的线手势检测 import java util ArrayList import android app Activi
  • 分离 Fragment 和删除 Fragment 有什么区别?

    在 Android 文档中碎片交易 http developer android com reference android app FragmentTransaction html我注意到两种非常相似的方法 detach and remo
  • 如何关闭导航抽屉以使用返回主页图标按钮?

    我也将操作栏与搜索栏一起使用 并且我需要像后退按钮一样使用 ActionBar ico 但我也在使用导航抽屉 如何关闭 隐藏 禁用导航抽屉菜单以使用后退按钮 我的 ActionBar 代码 Override public boolean o
  • 如何从一个活动检索 Double 值到另一活动?

    我制作了一个包含 2 个活动的应用程序 其中第一个活动包含一些 EditText 十进制数字 另一个活动也包含一些 EditText 十进制 现在我想将一个 EditText 的值传递给另一个 但作为 双 而不是作为一个字符串 因为该值将用
  • 我有一个仅显示图标和标题的列表 无 JQM 格式 如果屏幕宽度低于 320 px 我想将列表转换为 JQM ul list 我可以通过 Jquery 添加属性 但是当我调用 menuList listview refresh 时我收到以下错
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • 如何检测日期选择器对话框的取消单击?

    我正在使用以下 日期选择器的示例 http developer android com guide tutorials views hello datepicker html http developer android com guide

随机推荐

  • 从 Angular 6 迁移到 Angular 7

    我最近将我的 Angular 4 应用程序升级到 Angular 6 现在想升级到 Angular 7 根据下面的文章 运行以下命令应该不会超过 10 分钟即可升级 ng 更新 Angular cli Angular Core https
  • Python list.clear复杂性[重复]

    这个问题在这里已经有答案了 Python 3方法的复杂度是多少list clear 这里没有给出 https wiki python org moin TimeComplexity https wiki python org moin Ti
  • 为什么片段有默认构造函数?

    Fragment中有默认构造函数 我想知道它的用途以及它提供什么功能 我在没有它的情况下运行代码 它工作完美 并且在删除它时我找不到任何错误 public class SongListFragment extends Fragment pr
  • 在 Java 中使用多行“and”或“or”格式化“if”语句的正确方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 显然 如果 和 和 或 是非常通用的搜索参数 我一生都无法在谷歌上找到答案 根据 Java 标准 以下哪种格式是正确的 Option 1 if
  • 枚举本地化

    如何本地化枚举ListBoxFor哪里可以有多种选择 例如一个enum包含角色 public enum RoleType Display Description Administrator ResourceType typeof Resou
  • 在 dealloc 中使 NSTimer 失效

    下列的这个问题 https stackoverflow com q 3478361 865175 更具体地说 这条评论 https stackoverflow com questions 3478361 best time to inval
  • 返回非正数时函数更改变量地址

    所以我有一个函数 它获取变量的地址并将数字放入其中 我需要这个函数来对输入进行所有检查 因为我的老师喜欢放类似的东西 123 ABV00000012 当要求只输入一个数字时 问题是 当数字为负数时 它会以某种方式更改我的变量的地址 并只给我
  • 反序列化触发函数

    我有一个包含许多字段的类 这些字段通常是在构造函数中根据类中的其他数据计算的 它们不会序列化为 XML 因为对其余数据的任何更改都可能需要重新计算 有没有办法设置在反序列化时触发的函数调用 你所描述的是 OnDeserialized htt
  • XStream 序列化和反序列化中的多态性

    我有这些课程 XStreamAlias person public class PersonConfig private AnimalConfig animalConfig public interface AnimalConfig XSt
  • Response.Flush() 仅适用于 Firefox

    我试图在做一些冗长的工作之前向客户发送一些内容 Response Write Processing Response Flush System Threading Thread Sleep 5000 Response Write Finis
  • 谷歌地图 iOS SDK:用作标记的自定义图标

    Android API 为此提供了一个非常方便的类 IconGenerator http googlemaps github io android maps utils javadoc com google maps android ui
  • 如何解决基本标签的问题?

    我的基本标签有问题 看起来像 除了这个查询之外 一切正常 get application soft calendar month change php 我的计算机认为它是跨域服务器并将查询更改为选项 当我删除基本标签时 它可以正常工作 但我
  • 发布订阅延迟达到分钟

    我一直在开发一个在 Node js 灵活运行时上利用 Gcloud pubsub 平台的项目 由于某种原因 出现了一些相当疯狂的延迟 并且随着时间的推移 延迟的严重程度不断增加 起初 只有某种类型的消息有时会经历严重的延迟 然而 随着我过去
  • 在 C# 中从 XML 中删除所有属性的最简单方法是什么?

    我想从 XML 中删除所有标签的属性 我只想保留标签及其内部值 在 C 中执行此操作最简单的方法是什么 static void removeAllAttributes XDocument doc foreach var des in doc
  • 计算拟合框数量的算法

    我有一个客户卖酒瓶 他使用可容纳 6 瓶 12 瓶 18 瓶和 21 瓶的盒子 但他只想接受完全适合这些盒子的订单 里面不能有任何空白 E g 33 即可 1x21 和 2x6 48 即可 2x21 和 1x6 或 4x12 26 35 6
  • 通过正则表达式的 split 函数分割表情符号字符串

    我想使用 Javascript 的 split 函数来分割表情符号字符串 stackoverflow上有很多类似的问题 但我找不到任何完整的解决方案 所以我用我自己的方式来做 a 将 split 函数与正则表达式结合使用 b 通过正则表达式
  • java中比较二维数组

    我正在寻找一种简单的方法来检查两个二维数组是否具有完全相同的内容 理想的情况是不使用任何 for 循环 但如果这是唯一可能的方式 那就这样吧 谢谢您的帮助 考虑使用Arrays deepEquals http java sun com ja
  • C# 控制台会因写入行过多而溢出吗?

    如果我有一个每秒多次执行 Console Writeline 的程序 并且该程序长时间运行 控制台是否会因行数过多而溢出 我只是想知道它最终是否会抛出 IO 异常 或者 Console Writelines 的数量是否几乎是无限的 不 它不
  • 当代码为 401 时,如何在 okhttp 中获取响应正文?

    我正在使用 OkHttp 3 2 0 这里是构建请求对象的代码 MediaType JSON MediaType parse AppConstants CONTENT TYPE VALUE JSON RequestBody body Req
  • 过滤后的列表项将打开原始列表项的活动

    经过大量时间在这里和其他地方的搜索后 我无望找到解决方案 所以这是我的问题 我创建了一个列表视图 并在其之上添加了一个搜索栏 当我使用搜索栏来过滤结果时 当我单击第 7 项时 它总是从第一个活动开始 而不是打开特定的单击活动 即 7 我期待