ExpandableListView с уникальными кнопками

119
17 октября 2019, 09:00

Не знаю как добавить уникальные кнопки в ExpandableListView. Нужно чтобы каждая кнопка имело свое название и переход. Например:

Horror:
Оно
Чужой
Астрал
Action: 
Мстители
Веном 
Дедпул

и так далее

Прошу помочь

public class DataProvider {
public static HashMap<String, List<String>> getInfo(){
    HashMap<String,List<String>> MoviesDetails = new HashMap<String, List<String>>();
    List<String> Action_Movies = new ArrayList<String>();
    Action_Movies.add("");
    Action_Movies.add("Robocop 2");
    Action_Movies.add("Inception");
    List<String> Romantic_Movies= new ArrayList<String>();
    Romantic_Movies.add("Mean Girls");
    Romantic_Movies.add("Feilure to Launch");
    List<String> Horror_Movies= new ArrayList<String>();
    Horror_Movies.add("The Conjuring");
    Horror_Movies.add("It");
    Horror_Movies.add("Sinister");
    List<String> Comedy_Movies= new ArrayList<String>();
    Comedy_Movies.add("Ride Along");
    Comedy_Movies.add("This is the End");
    MoviesDetails.put("Action Movies",Action_Movies);
    MoviesDetails.put("Romantic Movies", Romantic_Movies);
    MoviesDetails.put("Horror Movies",Horror_Movies);
    MoviesDetails.put("Comedy Movies",Comedy_Movies);
    return MoviesDetails;
}
}

Adapter Java

public class MoviesAdaptor extends BaseExpandableListAdapter {
private Context ctx;
private HashMap<String, List<String>> Movies_Category;
private List<String> Movies_List;
public MoviesAdaptor(Context ctx, HashMap<String, List<String>> Movies_Category, List<String> Movies_List) {
    this.ctx = ctx;
    this.Movies_Category = Movies_Category;
    this.Movies_List = Movies_List;
}
@Override
public int getGroupCount() {
    return Movies_List.size();
}
@Override
public int getChildrenCount(int arg0) {
    return Movies_Category.get(Movies_List.get(arg0)).size();
}
@Override
public Object getGroup(int arg0) {
    return Movies_List.get(arg0);
}
@Override
public Object getChild(int parent, int child) {
    return Movies_Category.get(Movies_List.get(parent)).get(child);
}
@Override
public long getGroupId(int arg0) {
    return arg0;
}
@Override
public long getChildId(int parent, int child) {
    return child;
}
@Override
public boolean hasStableIds() {
    return false;
}
@Override
public View getGroupView(int parent, boolean isExpanded, View convertView, ViewGroup parentView) {
    String group_title = (String) getGroup(parent);
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.parent_layout, parentView, false);
    }
    TextView parent_textview = convertView.findViewById(R.id.parent_txt);
    parent_textview.setTypeface(null, Typeface.BOLD);
    parent_textview.setText(group_title);
    return convertView;
}
@Override
public View getChildView(int parent, int child, boolean LastChild, View convertView, ViewGroup parentView) {
    String child_title = (String) getChild(parent, child);
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.child_layout, parentView, false);
    }
    TextView child_textview = convertView.findViewById(R.id.child_txt);
    child_textview.setText(child_title);
    return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    return true;
}
}

MainActivity

public class MainActivity extends Activity {
HashMap<String, List<String>>Movies_category;
List<String>Movies_List;
ExpandableListView Exp_list;
MoviesAdaptor adaptor;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Exp_list = findViewById(R.id.exp_list);
    Movies_category = DataProvider.getInfo();
    Movies_List = new ArrayList<String>(Movies_category.keySet());
    adaptor = new MoviesAdaptor(this,Movies_category,Movies_List);
    Exp_list.setAdapter(adaptor);
}
}
READ ALSO
При удалении элементов выскакивает IndexOutOfBoundsException

При удалении элементов выскакивает IndexOutOfBoundsException

написал код для удаления элемента последующих элементов из списка по индексу

125
Возврат из сервлета на уже открытую страницу jsp

Возврат из сервлета на уже открытую страницу jsp

Я пытаюсь делать приложение по технологии MVC, используя Servlet + Jsp+JstlРаботает оно так: 1

113
Пробежаться по словарю, отображению (Map)

Пробежаться по словарю, отображению (Map)

Помогите разобраться пример:

126
Как привести inputstream к fileinputstream

Как привести inputstream к fileinputstream

Как привести inputstream к fileinputstream? Так метод не работает:

120