Как разделить ответ API, который содержит Ques и Answer в нем. Я хочу разделить его в расширяемом списке Android - PullRequest
0 голосов
/ 18 сентября 2018

Я новичок в Android. У меня есть ExpandableListView, в котором я должен показать свой ответ в виде вопросов и ответов. Я должен разделить ответ там, где он содержит символы "@@". Ниже мой код

if (appState.isNetworkAvailable(FAQActivity.this)){
        networkRequest.invokeGetRequest(true, UrlConstants.getFAQs, FaqRootDto.class, new NetworkRequest.OnResponse() {
            @Override
            public void getResponse(Object obj) {
                    if (obj != null && obj instanceof FaqRootDto){
                        FaqRootDto faqRootDto = (FaqRootDto) obj;
                        faqlist = (faqRootDto).getResponse();
                        if (faqlist != null && faqlist.size() > 0){
                            for (FaqDto faqDto : faqlist) {

                                faqQuestionList.add(faqDto.getQuestion());
                                faqDataList.add(faqDto.getValue());
                                faqAnswers.put(faqDto.getQuestion(),faqDto.getValue());

                                Log.e("Ques",faqDto.getQuestion());
                                Log.e("Ans",faqDto.getValue());
                            }
                            progressDialog.dismiss();
                            faqAdapter.notifyDataSetChanged();
                        }
                    }
            }
        });
    }

Для значения ответа

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = getLayoutInflater().inflate(R.layout.help_child_list_item, parent, false);
        }

        // FAQHelpDto faqHelpDto = faqDataList.get(groupPosition);

        TextView answerTV = (TextView) convertView.findViewById(R.id.answerTV);
        Log.e("faqAns",""+faqDataList.get(groupPosition));

        answerTV.setText(faqDataList.get(groupPosition));

        convertView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //faqExpandableListView.collapseGroup(groupPosition);
            }
        });
        return convertView;
    }

Ответы [ 3 ]

0 голосов
/ 18 сентября 2018

Для проверки символа "@@" используйте: содержит ()

Для разделения можно использовать: split () .

String string = "Ans@@wer";

if (string.contains("@@")){
  String[] parts = string.split("@@");
  String part1 = parts[0]; // Ans
  String part2 = parts[1]; // wer
}
0 голосов
/ 24 сентября 2018

Получил ответ. Я только что изменил свой

answerTV.setText(faqDataList.get(groupPosition));

до

answerTV.setText(faqDataList.get(groupPosition).replace("@@","\n"));

Спасибо всем за ваши ответы

0 голосов
/ 18 сентября 2018

Просто используйте соответствующий метод: String # split ().

    String response = "@firstuser@seconduser";
    String[] faqlist = string.split("@@");
    String part1 = parts[0]; // firstuser
    String part2 = parts[1]; // seconduser

И вы используете Коллекции в Java для своего приложения.

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