【发布时间】:2019-07-04 04:53:26
【问题描述】:
这里的列表(部分是 list.get(9) )是一个字符串数组列表。我试图从用户那里获取所有用户名并将其添加到列表中,然后在文本视图中显示第 10 个名称。
当我运行应用程序时,它会在我下面链接的图像中引发错误,错误是 textView.setText(list.get(9)) 中的索引超出范围。但是当我评论这一行时它起作用,并使用按钮 onclick 为我的 textview 设置文本。
这是我示例中的 api。 https://jsonplaceholder.typicode.com/users
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//init api
Retrofit retrofit = RetrofitClient.getInstance();
btnOk = findViewById(R.id.btn_ok);
myAPI = retrofit.create(IMyAPI.class);
textView = findViewById(R.id.show);
//fetchData()
fetchUserData();
textView.setText(list.get(9));
btnOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textView.setText(list.get(9));
}
});
}
private void fetchUserData() {
myAPI.getUsers()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ArrayList<User>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(ArrayList<User> users) {
String usName ;
for(int i = 0; i < users.size(); i++){
usName = posts.get(i).getUsername();
list.add(usName);
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
【问题讨论】:
-
onNext之外是什么意思? -
你能分享你的异常堆栈跟踪吗?
-
@BachVu 对不起,伙计们,这是我第一次在 stackoverflow 中询问。我已经编辑了我的帖子以使其更易于理解。请再次检查,谢谢。
-
@raxerz 抱歉,这是我第一次在 stackoverflow 中询问。我已经编辑了我的帖子以使其更易于理解。请再次检查,谢谢