大家好,我很难弄清楚为什么我的按钮不会显示正确的文字并显示垃圾代码。我正在运行一个serverRequest,然后在获得详细信息后创建按钮,我确实测试了我从服务器返回正确的字符串。
public void getCourses(User user) {
ServerRequest serverRequest = new ServerRequest(this);
serverRequest.fetchUserCoursesDataInBackground(user, new getUserCallback() {
@Override
public void doneString(String[] returnedString) {
if (returnedString == null) {
System.out.println("DONE EMPTY");
} else {
userLocalStore.storeUserCourses(returnedString);
final ListView listView = (ListView) findViewById(R.id.viewCourseList);
final ArrayList<Button> list = new ArrayList<>();
View v = getWindow().getDecorView();
for (int i = 0; i < returnedString.length; i++) {
System.out.println("This is in for loop:" +returnedString[i]);
Button button = new Button(v.getContext());
button.setText(returnedString[i]);
button.setId(i);
button.setHeight(40);
button.setWidth(100);
list.add(button);
}
if (list.isEmpty()) {
System.out.println("List is empty bro");
} else {
final ArrayAdapter adapter = new ArrayAdapter(v.getContext(), android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
System.out.println("Adding adapter");
}
}
}
这是整个代码。我将向您展示它在应用程序上显示的内容
答案 0 :(得分:1)
我在这段代码中看到3个问题:
第一,我认为java可以搞砸这个1:
替换&GT; final ArrayList list = new ArrayList&lt;&gt;();
与&GT; final ArrayList list = new ArrayList();
第二,您正在为ArrayAdapter使用布局“android.R.layout.simple_list_item_1”,这是一个包含文本视图的xml布局,因此您的屏幕截图显示了2个文本视图,而不是按钮。
第3个新的ArrayAdapter()构造函数获取字符串列表。所以,如果你...
替换&GT; final ArrayAdapter adapter = new ArrayAdapter(v.getContext(),android.R.layout.simple_list_item_1,list);
与&GT; final ArrayAdapter adapter = new ArrayAdapter(v.getContext(),android.R.layout.simple_list_item_1,returnedString);
您将看到包含您在循环中打印的文本的按钮。