- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码的简化版本。
public class MainActivity extends ActionBarActivity {
private ArrayList<String> entry = new ArrayList<String>();
private String[] entryString = new String[11];
private ArrayAdapter<String> aa;
private ListView entryListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
entryListView = (ListView) findViewById(R.id.listView1);
int listID = R.layout.entry_layout;
aa = new EntryAdapter(this, listID, entry);
entryListView.setAdapter(aa);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
switch (id) {
case R.id.action_add: {
Intent intent = new Intent(MainActivity.this, AddActivity.class);
startActivityForResult(intent, 1);
break;
}
}
return super.onOptionsItemSelected(item);
}
@Override
public void onActivityResult(int rc, int resc, Intent i) {
super.onActivityResult(rc, resc, i);
entryString = i.getStringArrayExtra("Entry");
this.onNewItemAdded(entryString);
}
public void onNewItemAdded(String[] _entry){
String key = new String();
key = _entry[0];
entry.add(key);
aa.notifyDataSetChanged(); //Runs without crashing when this is removed.
}
适配器类是,
@SuppressLint("Instantiatable")
public class EntryAdapter extends ArrayAdapter<String>{
private ArrayList<String> entries;
int count;
int resource;
public EntryAdapter(Context _context, int _resource, List<String> _entries){
//TODO Auto-generated constructor stub
super(_context, _resource, R.id.key, _entries);
this.resource = _resource;
this.entries = new ArrayList<String>(_entries);
this.count = 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (convertView == null) {
String inflater = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater li;
li = (LayoutInflater) getContext().getSystemService(inflater);
row = li.inflate(resource, parent, false);
}
TextView keyView = (TextView) row.findViewById(R.id.key);
TextView siteView = (TextView) row.findViewById(R.id.site);
for(int c=0; c<11; c++){
while(!entries.get(c).toString().equals("")){
count++;
}
}
keyView.setText(entries.get(position));
siteView.setText(count + "sources");
return row;
}
}
通过注释 MainActivity 中的 aa.notifyDataSetChanged() 调用,应用程序运行时不会崩溃但会抛出一个
IndexOutOfBoundsException: Invalid index 0, size is 0
未评论时
PS:XML 非常好。
编辑:
这是日志
03-18 18:38:03.840: E/AndroidRuntime(6052): FATAL EXCEPTION: main 03-18 18:38:03.840: E/AndroidRuntime(6052): Process: com.FirstClass.alert, PID: 6052 03-18 18:38:03.840: E/AndroidRuntime(6052): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 03-18 18:38:03.840: E/AndroidRuntime(6052): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) 03-18 18:38:03.840: E/AndroidRuntime(6052): at java.util.ArrayList.get(ArrayList.java:308) 03-18 18:38:03.840: E/AndroidRuntime(6052): at com.FirstClass.netalert.EntryAdapter.getView(EntryAdapter.java:66) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.AbsListView.obtainView(AbsListView.java:2263) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.ListView.makeAndAddView(ListView.java:1790) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.ListView.fillDown(ListView.java:691) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.ListView.fillFromTop(ListView.java:752) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.ListView.layoutChildren(ListView.java:1630) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.AbsListView.onLayout(AbsListView.java:2091) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.View.layout(View.java:14822) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewGroup.layout(ViewGroup.java:4631) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.View.layout(View.java:14822) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewGroup.layout(ViewGroup.java:4631) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.FrameLayout.onLayout(FrameLayout.java:388) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.View.layout(View.java:14822) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewGroup.layout(ViewGroup.java:4631) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:502) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.View.layout(View.java:14822) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewGroup.layout(ViewGroup.java:4631) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.FrameLayout.onLayout(FrameLayout.java:388) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.View.layout(View.java:14822) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewGroup.layout(ViewGroup.java:4631) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.View.layout(View.java:14822) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewGroup.layout(ViewGroup.java:4631) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.widget.FrameLayout.onLayout(FrameLayout.java:388) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.View.layout(View.java:14822) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewGroup.layout(ViewGroup.java:4631) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1987) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1744) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.Choreographer.doCallbacks(Choreographer.java:574) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.Choreographer.doFrame(Choreographer.java:544) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.os.Handler.handleCallback(Handler.java:733) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.os.Handler.dispatchMessage(Handler.java:95) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.os.Looper.loop(Looper.java:136) 03-18 18:38:03.840: E/AndroidRuntime(6052): at android.app.ActivityThread.main(ActivityThread.java:5021) 03-18 18:38:03.840: E/AndroidRuntime(6052): at java.lang.reflect.Method.invokeNative(Native Method) 03-18 18:38:03.840: E/AndroidRuntime(6052): at java.lang.reflect.Method.invoke(Method.java:515) 03-18 18:38:03.840: E/AndroidRuntime(6052): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827) 03-18 18:38:03.840: E/AndroidRuntime(6052): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) 03-18 18:38:03.840: E/AndroidRuntime(6052): at dalvik.system.NativeStart.main(Native Method)
最佳答案
我的问题是通过实现 ArrayAdapter
的 getCount()
方法解决的,这有助于 ArrayAdapter
知道要调用多少对象getView()
用于,一旦数据发生变化。
@Override
public int getCount()
{
return data.size();
}
关于android - notifyDataSetChanged() 导致 IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29124850/
我正在尝试使用 Spark 从 Cassandra 读取数据。 DataFrame rdf = sqlContext.read().option("keyspace", "readypulse
这是代码: void i_log_ (int error, const char * file, int line, const char * fmt, ...) { /* Get erro
我必须调试一个严重依赖 Gtk 的程序。问题是由于某些原因,在使用 GtkWindow 对象时开始出现许多运行时警告。问题是,即使 Gtk 提示严重错误,它也不会因这些错误而中止。我没有代码库的更改历
我正在尝试从已有效编译和链接的程序中检索二进制文件。我已经通过 GL_PROGRAM_BINARY_LENGTH 收到了它的长度。该文档说有两个实例可能会发生 GL_INVALID_OPERATION
我有一个托管在 Azure 环境中的服务。我正在使用控制台应用程序使用该服务。这样做时,我得到了异常: "The requested service, 'http://xxxx-d.yyyy.be/S
我有以下代码,它被 SEGV 信号杀死。使用调试器表明它被 main() 中的第一个 sem_init() 杀死。如果我注释掉第一个 sem_init() ,第二个会导致同样的问题。我试图弄清楚是什么
目前我正在编写一个应用程序(目标 iOS 6,启用 ARC),它使用 JSON 进行数据传输,使用核心数据进行持久存储。 JSON 数据由 PHP 脚本通过 json_encode 从 MySQL 数
我对 Xamarin.Forms 还是很陌生。我在出现的主页上有一个非常简单的功能 async public Task BaseAppearing() { if (UserID
这是我的代码的简化版本。 public class MainActivity extends ActionBarActivity { private ArrayList entry = new Arr
我想弄明白为什么我的两个 Java 库很难很好地协同工作。这是场景: 库 1 有一个类 A,其构造函数如下: public A(Object obj) { /* boilerplate */ } 在以
如果网站不需要身份验证,我的代码可以正常工作,如果需要,则在打印“已创建凭据”后会立即出现 EXC_BAD_ACCESS 错误。我不会发布任何内容,并且此代码是直接从文档中复制的 - 知道出了什么问题
我在使用 NSArray 填充 UITableView 时遇到问题。我确信我正在做一些愚蠢的事情,但我无法弄清楚。当我尝试进行简单的计数时,我得到了 EXC_BAD_ACCESS,我知道这是因为我试图
我在 UITableViewCell 上有一个 UITextField,在另一个单元格上有一个按钮。 我单击 UITextField(出现键盘)。 UITextField 调用了以下方法: - (BO
我有一个应用程序出现间歇性崩溃。崩溃日志显示了一个堆栈跟踪,这对我来说很难破译,因此希望其他人看到了这一点并能为我指出正确的方向。 基本上,应用程序在启动时执行反向地理编码请求,以在标签中显示用户的位
我开发了一个 CGImage,当程序使用以下命令将其显示在屏幕上时它工作正常: [output_view.layer performSelectorOnMainThread:@selector(set
我正在使用新的 EncryptedSharedPreferences以谷歌推荐的方式上课: private fun securePrefs(context: Context): SharedPrefe
我有一个中继器,里面有一些控件,其中一个是文本框。我正在尝试使用 jquery 获取文本框,我的代码如下所示: $("#").click(function (event) {}); 但我总是得到 nu
在以下场景中观察到 TTS 初始化错误,太随机了。 已安装 TTS 引擎,存在语音集,并且可以从辅助功能选项中播放示例 tts。 TTS 初始化在之前初始化和播放的同一设备上随机失败。 在不同的设备(
maven pom.xml org.openjdk.jol jol-core 0.10 Java 类: public class MyObjectData { pr
在不担心冲突的情况下,可以使用 MD5 作为哈希值,字符串长度最多为多少? 这可能是通过为特定字符集中的每个可能的字符串生成 MD5 哈希来计算的,长度不断增加,直到哈希第二次出现(冲突)。没有冲突的
我是一名优秀的程序员,十分优秀!