Как получить и отделить несколько данных, переданных в массиве, от одной операции к другой через намерение - PullRequest
0 голосов
/ 08 января 2019

Я не могу разделить два элемента данных, переданных вместе через массив в получающем действии

Я передал данные материала и данные о цене через одно и то же Intent Extra другому действию. Я успешно получил данные в получающей деятельности и опубликовал в поле Textview. такой, что выглядит вот так: «Куриные крылышки 1000» на экране. Однако я хочу разделить обе части данных на два разных поля Textview на одном экране. проблема в том, что я не могу отделить оба от массива. Мой код ниже

В отправляющей деятельности

Cursor category1 = controller.categotyforGroupedLv();
        Cursor itemListCategory;
        listDataHeader = new ArrayList<>();
        listHash = new HashMap<>();

        if (category1.getCount() == 0) {
           category1.moveToFirst();

        }

                 while (category1.moveToNext()) {
                listDataHeader.add(" " + category1.getString(1));


                itemListCategory = controller.getFPMsster(category1.getString(1));   

                List<String> listDataItem = new ArrayList<>();
                if (itemListCategory.getCount() != 0) {
                    while(itemListCategory.moveToNext()) {
                        listDataItem.add(" " + itemListCategory.getString(3)+ " " + itemListCategory.getString(4));

Намерение

 mIntent = new Intent(OrderTakingScreen.this,
                        OrderTakingScreen2_OrderDetails.class);

                               mIntent.putExtra("keyName", listHash.get(listDataHeader.get(groupPosition)).get(childPosition));

В получающей деятельности у меня есть

 TextView menuChoice = (TextView) findViewById(R.id.menuchoice);
    String data = getIntent().getExtras().getString("keyName");
    menuChoice.setText(data);  

В переменной «KeyName» у меня напечатано «Куриные крылышки 1000» в поле TextView. Я хочу иметь возможность разделить их и распечатать «Куриные крылышки» на одном экране TextView, а «1000» - в другом поле TextView

1 Ответ

0 голосов
/ 08 января 2019

Если это шаблон каждой строки:
Это означает, что последний фрагмент данных является числом или одним словом
тогда их можно разделить, найдя индекс последнего пробела:

String text = "Chicken wings 1000";
String item1 = text.substring(0, text.lastIndexOf(' '));
String item2 = text.substring(text.lastIndexOf(' ') + 1);
System.out.println("item1 = " + item1);
System.out.println("item2 = " + item2);

напечатает

item1 = Chicken wings
item2 = 1000
...