2016-08-09 17 views
1

展開リストビューが正しい順序でないようです。ここで展開可能リストビューが正しい順序でない

はそれのための私のdataProviderです:それが作成されたのはここ

public class DataProvider { 

public static HashMap<String, List<String>> getInfo() { 

    HashMap<String, List<String>> WorkoutDetails = new HashMap<String, List<String>>(); 

    List<String> Workout_29 = new ArrayList<String>(); 
    Workout_29.add("Week One"); 
    Workout_29.add("Week Two"); 
    Workout_29.add("Week Three"); 
    Workout_29.add("Week Four"); 

    List<String> Workout_30 = new ArrayList<String>(); 
    Workout_30.add("Week One"); 
    Workout_30.add("Week Two"); 
    Workout_30.add("Week Three"); 
    Workout_30.add("Week Four"); 

    List<String> Workout_31 = new ArrayList<String>(); 
    Workout_31.add("Week One"); 
    Workout_31.add("Week Two"); 
    Workout_31.add("Week Three"); 
    Workout_31.add("Week Four"); 

    List<String> Workout_32 = new ArrayList<String>(); 
    Workout_32.add("Week One"); 
    Workout_32.add("Week Two"); 
    Workout_32.add("Week Three"); 
    Workout_32.add("Week Four"); 

    List<String> Workout_37 = new ArrayList<String>(); 
    Workout_37.add("Week One"); 
    Workout_37.add("Week Two"); 
    Workout_37.add("Week Three"); 
    Workout_37.add("Week Four"); 

    WorkoutDetails.put("Workout 29", Workout_29); 
    WorkoutDetails.put("Workout 30", Workout_30); 
    WorkoutDetails.put("Workout 31", Workout_31); 
    WorkoutDetails.put("Workout 32", Workout_32); 
    WorkoutDetails.put("Workout 37", Workout_37); 

    return WorkoutDetails; 
} 

} 

は次のとおりです。

public class MyWorkout extends BaseActivity{ 

ExpandableListView expandableListView; 
HashMap<String, List<String>> Workouts_details; 
List<String> Workout_list; 
WorkoutsAdapter mAdapter; 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_workout); 
    mToolBar = activateToolbar(); 
    setUpNavigationDrawer(); 
    getSupportActionBar().setTitle("My Workout"); 


    expandableListView = (ExpandableListView) findViewById(R.id.listViewWorkouts); 
    Workouts_details = DataProvider.getInfo(); 
    Workout_list = new ArrayList<>(Workouts_details.keySet()); 
    mAdapter = new WorkoutsAdapter(this, Workouts_details, Workout_list); 



    expandableListView.setAdapter(mAdapter); 

あなたはそれが29,30,31,32,37する必要があります見ることができるように...実際にはそれは29,30,32,37,31 ...どんなアイデアですか?ありがとう!

答えて

1

HashMapは返されたキーセットのキーの順序について保証していない可能性があります。私が推測することは、ここで作成したリストを並べ替えると、希望の順序が得られるということです:

Workout_list = new ArrayList<>(Workouts_details.keySet()); 
    // Now sort Workout_list... 
    // As it is simply a list of strings, we can sort it according to its natural ordering (lexicographical) to get your desired result like so: 
    java.util.Collections.sort(Workout_list); 
+0

ありがとう、私はWorkout_listをソートする方法はありますか? – LBJ33

+0

@ LBJ33私は、その自然順序(辞書編集的)に従ってリストのソートを含むように答えを更新しました。それは今働きますか? –

+1

それはうまくいった!ありがとうございました! – LBJ33