Преобразование ListView в ExpandableListView - Android - PullRequest
0 голосов
/ 06 января 2020

Я использую ListView, я хочу преобразовать его в ExpandableListView. Я извлекаю данные из MS SQL. Я определяю название и содержание в соответствии с данными, которые я взял. Заголовок: текст Заголовок, содержание: txtQueryContent. Я хочу, чтобы это было открыто и закрыто. Это не открывается прямо сейчас. Все темы и детали отображаются (см. Фото). Я хочу сделать это в виде раскрывающегося списка.

sc

import static android.text.Layout.JUSTIFICATION_MODE_INTER_WORD;
public class SSSFragment extends Fragment {

    private SsViewModel mViewModel;
    private ArrayList<ClassListItems> itemArrayList;  //List items Array
    private MyAppAdapter myAppAdapter; //Array Adapter
    private ListView listView; // Listview
    private boolean success = false; // boolean
    private ConnectionClass connectionClass; //Connection Class Variable
    public static SSSFragment newInstance() {
        return new SSSFragment();
    }

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.ss_fragment, container, false);

        listView = (ListView) root.findViewById(R.id.listView); //Listview Declaration
        connectionClass = new ConnectionClass(); // Connection Class Initialization
        itemArrayList = new ArrayList<ClassListItems>(); // Arraylist Initialization
        // Calling Async Task
        SyncData orderData = new SyncData();
        orderData.execute("");
        return root;

    }
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        mViewModel = ViewModelProviders.of(this).get(SsViewModel.class);
        // TODO: Use the ViewModel
    }

    // Async Task has three overrided methods,
    private class SyncData extends AsyncTask<String, String, String>
    {
        String msg = "Internet/DB_Credentials/Windows_FireWall_TurnOn Error, See Android Monitor in the bottom For details!";
        ProgressDialog progress;

        @Override
        protected void onPreExecute() 
        {
            progress = ProgressDialog.show(getContext(), "Synchronising",
                    "Lütfen Bekleyiniz...", true);
        }

        @Override
        protected String doInBackground(String... strings)  
        {
            try
            {
                Connection conn = connectionClass.CONN(); //Connection Object
                if (conn == null)
                {
                    success = false;
                }
                else {
                    // Change below query according to your own database.
                    String query = "SELECT ...,...,... FROM ... Where soru_tur=1";
                    Statement stmt = conn.createStatement();
                    ResultSet rs = stmt.executeQuery(query);
                    if (rs != null) 
                    {
                        while (rs.next())
                        {
                            try {
                                itemArrayList.add(new ClassListItems(rs.getString("..."),rs.getString("..."),rs.getInt("...")));
                            } catch (Exception ex) {
                                ex.printStackTrace();
                            }
                        }
                        msg = "Found";
                        success = true;
                    } else {
                        msg = "No Data found!";
                        success = false;
                    }
                }
            } catch (Exception e)
            {
                e.printStackTrace();
                Writer writer = new StringWriter();
                e.printStackTrace(new PrintWriter(writer));
                msg = writer.toString();
                success = false;
            }
            return msg;
        }

        @Override
        protected void onPostExecute(String msg) 
        {
            progress.dismiss();
           // Toast.makeText(getContext(), msg + "", Toast.LENGTH_LONG).show();
            if (success == false)
            {
            }
            else {
                try {
                    myAppAdapter = new MyAppAdapter(itemArrayList, getContext());
                    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
                    listView.setAdapter(myAppAdapter);
                } catch (Exception ex)
                {

                }

            }
        }
    }

    public class MyAppAdapter extends BaseAdapter       
    {
        public class ViewHolder
        {
            TextView textBaslik,txtsoruicerik;
        }

        public List<ClassListItems> parkingList;

        public Context context;
        ArrayList<ClassListItems> arraylist;

        private MyAppAdapter(List<ClassListItems> apps, Context context)
        {
            this.parkingList = apps;
            this.context = context;
            arraylist = new ArrayList<ClassListItems>();
            arraylist.addAll(parkingList);
        }

        @Override
        public int getCount() {
            return parkingList.size();
        }

        @Override
        public Object getItem(int position) {
            return position;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) // inflating the layout and initializing widgets
        {

            View rowView = convertView;
            ViewHolder viewHolder= null;
            if (rowView == null)
            {
                LayoutInflater inflater = getLayoutInflater();
                rowView = inflater.inflate(R.layout.list_content_sss, parent, false);

                viewHolder = new ViewHolder();

                viewHolder.textBaslik = (TextView) rowView.findViewById(R.id.txt_baslik);
                viewHolder.txtsoruicerik = (TextView) rowView.findViewById(R.id.text_soruicerik);
                rowView.setTag(viewHolder);
            }
            else
            {
                viewHolder = (ViewHolder) convertView.getTag();
            }


            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                viewHolder.textBaslik.setText(Html.fromHtml(parkingList.get(position).getName()+"", Html.FROM_HTML_MODE_COMPACT));
                viewHolder.txtsoruicerik.setText(Html.fromHtml(parkingList.get(position).getImg2()+"", Html.FROM_HTML_MODE_COMPACT));

            } else {
                viewHolder.textBaslik.setText(Html.fromHtml(parkingList.get(position).getName()+""));
                viewHolder.txtsoruicerik.setText(Html.fromHtml(parkingList.get(position).getImg2()+""));

            }

            return rowView;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...