Заполнить Редактировать текст из счетчика - PullRequest
0 голосов
/ 30 сентября 2018

Я работаю над кодом, где, например, пользователь выбирает фабрику с именем FabricA, и когда он выбирает ее, ему нужно заполнить текст редактирования ценой FabricA.Я пытался реализовать это, но я не могу получить цену, чтобы показать в тексте редактирования.Я сохранил название и цену в двух разных массивах.Должен ли я хранить его в том же массиве?

Вот мой код:

try {
    ConnectionHelper conStr = new ConnectionHelper();
    connect = conStr.connectionclass();

    if (connect == null) {
        Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
    } else {
        String query = "select * from cc_fabric";
        stmt = connect.prepareStatement(query);
        rs = stmt.executeQuery();
        ArrayList<String> dataF = new ArrayList<>();
        ArrayList<String> dataFP = new ArrayList<>();
        while (rs.next()) {
            String id = rs.getString("FABRIC_NAME");
            String price = rs.getString("FABRIC_UNIT_PRICE");// value of database
            dataF.add(id);
            dataFP.add(price);
        }
        ArrayAdapter NoCoreAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, dataF);
        Fabric.setAdapter(NoCoreAdapter);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

Fabric.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view,
                                int position, long id) {
        String name = Fabric.getSelectedItem().toString();
        String price = Fabric.getSelectedItem().toString();
        fabricPrice.setText(price);
        Toast.makeText(Calc_140_plain.this, name, Toast.LENGTH_SHORT)
            .show();
    }
    public void onNothingSelected(AdapterView<?> parent) {
    }
});

Код не заполняет мой текст редактирования

Ответы [ 2 ]

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

Объявите HashMap члена экземпляра в вашем классе активности

private HashMap<String,String> hashmap;

Затем измените свой код следующим образом:

try {
            ConnectionHelper conStr = new ConnectionHelper();
            connect = conStr.connectionclass();

            if (connect == null) {
                Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
            } else {
                String query = "select * from cc_fabric";
                stmt = connect.prepareStatement(query);
                rs = stmt.executeQuery();
                ArrayList<String> dataF = new ArrayList<>();
                hashMap = new HashMap<>();
                while (rs.next()) {
                    String id = rs.getString("FABRIC_NAME");
                    String price = rs.getString("FABRIC_UNIT_PRICE");// value of database
                    hashMap.put(id,price);
                    dataF.add(id);
                }
                ArrayAdapter NoCoreAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, dataF);
                Fabric.setAdapter(NoCoreAdapter);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }



        Fabric.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                                       int position, long id) {
                String name = Fabric.getSelectedItem().toString();
               String price = hashMap.get(name);
               fabricPrice.setText(price);
                Toast.makeText(Calc_140_plain.this, name, Toast.LENGTH_SHORT)
                        .show();
            }
            public void onNothingSelected(AdapterView<?> parent) {
            }sss            });
0 голосов
/ 30 сентября 2018

Вот пример того, как установить пользовательский адаптер

val titles = mutableListOf<TitleBean>()
titles.addAll(allTitleTypes)
spinner_title.adapter = ArrayAdapter(this, R.layout.item_spinner, titles)

Значения будут заполняться на основе переопределенного значения toString()

. Вы можете прочитать значение следующим образом:

(spinner_title.selectedItem as TitleBean).id

Образец TitleBean, использованный в вышеприведенном примере

data class TitleBean(
        var id: String = "",
        var titleName: String = ""
) {
    @Ignore
    override fun toString(): String {
        return titleName
    }
}

Примечание: пример в kotlin lang.Однако идея та же.

...