我现在正在AT&T程序集中逐步执行一个函数,无法弄清楚这个特定的jmp命令是如何工作的.
jmp *0x804a140(,%eax,4)
Run Code Online (Sandbox Code Playgroud)
究竟是如何使用%eax寄存器和4使用跳转指令?我以前从未见过jmp使用过这种方式.
我正在编写一个Android应用程序,需要动态删除我的listActivity中的足球游戏名单中的玩家.Activity有一个适配器,它链接到一个描述每个玩家的Strings数组.然后我点击时尝试从列表中删除一个播放器.我的问题是,每当我使用内置方法的适配器删除我不断收到此错误.
FATAL EXCEPTION: main
java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:638);
Run Code Online (Sandbox Code Playgroud)
据我所知,我没有权利从适配器中删除项目,但我不明白为什么,因为我在网上找到的每个例子似乎都没有问题.这是我用来尝试从适配器中删除单个项目的代码.
public void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
adapter.remove(adapter.getItem(position));
adapter.notifyDataSetChanged(); //Updates adapter to new changes
}
Run Code Online (Sandbox Code Playgroud)
这是我试图更改适配器的数据源并通知它更改希望它将更新屏幕列表的代码.
public void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
mainRoster.removePlayer(position); //removes from custom roster
stringedRoster = mainRoster.getStringArray(); //Resets string array
adapter.notifyDataSetChanged(); //Updates adapter to new changes
}
Run Code Online (Sandbox Code Playgroud)
如果有人能够对可能发生的事情发表一些看法,那将非常感激.