2016-01-28 51 views
0

嗨,大家好我很難搞清楚爲什麼我的按鈕不會顯示正確的文本和顯示垃圾代碼。我正在運行serverRequest,然後在獲取細節後創建按鈕,我確實測試了我從服務器獲取正確的字符串。添加一組按鈕到ListView,然後設置適配器和設置按鈕文本

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"); 
       } 
      } 
     } 

這是整個代碼。我會告訴你它是什麼應用

this is the bug

+0

你試過把硬編碼的字符串放進去嗎? button.settext( 「foobar的」); – CantThinkOfAnything

+0

@CantThinkOfAnything剛剛嘗試過。沒有改變同樣的事情。 – Serj

+0

難道你是在使用錯誤的上下文嗎? – CantThinkOfAnything

回答

1

我看到這個代碼3個問題顯示:

1日我認爲Java可以搞砸1了:

更換>最後的ArrayList list = new ArrayList <>();

具有>最終ArrayList的列表=新的ArrayList();

第二您正在使用一個ArrayAdapter佈局「android.R.layout.simple_list_item_1」,這是一個XML佈局,包括一個文本視圖因而你的屏幕截圖顯示2個文本視圖,而不是按鈕。

第三屆新ArrayAdapter()構造函數使用字符串列表。所以如果你...

replace> final ArrayAdapter adapter = new ArrayAdapter(v.getContext(),android.R.layout.simple_list_item_1,list);

with> final ArrayAdapter adapter = new ArrayAdapter(v.getContext(),android.R.layout.simple_list_item_1,returnedString);

,你會看到你是在你的循環打印文本按鈕。

+0

不能相信我錯過了,lolz – CantThinkOfAnything