Как заменить дочерний текст в расширяемом виде списка другим фрагментом в android studio? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть расширяемый список, который показывает TextView в качестве дочерних элементов. Я хочу показать фрагмент MiniMap внизу, когда вы щелкаете заголовок и устанавливаете его на половину высоты экрана.

Я попытался создать новый фрагмент и передать его вид в мою функцию сеттера. Это приводит к тому, что приложение открывает sh при открытии заголовка.

Вот мой код расширяемого представления списка:


import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class ExpandableListViewAdapter extends BaseExpandableListAdapter {

    private static ArrayList<String> tripNames;
    private static ArrayList <ArrayList<String>> tripValues;

    Context context;

    public ExpandableListViewAdapter (Context context){
        this.context = context;
        SharedPreference preferences = new SharedPreference(context);
        tripNames = new ArrayList <String>();
        tripValues = new ArrayList <ArrayList<String>>();

        for (int i = 0; i < preferences.getStringInput("tripNames").split(" ").length; i++){
            if (!preferences.getStringInput("tripNames").split(" ")[i].matches("none12323232321412515152124214412")){
                tripNames.add(preferences.getStringInput("tripNames").split(" ")[i].trim());
                //tripValues.add(new ArrayList<String>(Collections.singleton(preferences.getStringInput(preferences.getStringInput("tripNames").split(" ")[i].trim()))));
            }

        }
    }

    @Override
    public int getGroupCount() {
        return tripNames.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return tripValues.get(groupPosition).size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return tripNames.size();
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return tripValues.get(groupPosition).get(childPosition);
    }

    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        TextView textView = new TextView(context);
        textView.setText(tripNames.get(groupPosition));
        textView.setPadding(100, 50, 50, 0);
        textView.setTextSize(40);
        return textView;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        final TextView textView = new TextView(context);
        textView.setText(tripValues.get(groupPosition).get(childPosition));
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, textView.getText().toString(),Toast.LENGTH_SHORT).show();
            }
        });
        return textView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }

    public static void addTrip (String tripName, String tripPoints){
        tripNames.add(tripName);
        tripValues.add(new ArrayList<String>(Collections.singleton(tripPoints)));
    }
}

Я также создал пустой фрагмент для моей мини-карты

Есть идеи как? или если это возможно даже с помощью расширяемого списка?

...