将项目添加到Listview

时间:2020-07-22 09:39:21

标签: android android-studio listview

我试图将一个项目简单地添加到Listview并显示它。但是,如果我添加它,它只会向我显示该字符串的路径,而不是tring本身。我敢肯定这是一个简单的错误,但我找不到。


public class zutatenHinzufuegen extends AppCompatActivity {

    private ArrayList<String> zutatenliste;
    private ListView zutatenView;
    private ArrayAdapter<String> zutatenadapter;
    private TextInputLayout zutatInput;
    private TextInputLayout anzahlInput;
    private int anzahlint;
    private String einheitInput;
    private Button hinzufuegen_button;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.zutaten_hinzufuegen_linear);
        getSupportActionBar().setTitle(R.string.menu_zutaten);

        // Spinner
        final Spinner einheiten_spinner = (Spinner) findViewById(R.id.spinner_einheiten2);

        ArrayAdapter<String> einheiten_adapter = new ArrayAdapter<String>(zutatenHinzufuegen.this,
            android.R.layout.simple_list_item_1,getResources().getStringArray(R.array.einheiten));
        einheiten_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        einheiten_spinner.setAdapter(einheiten_adapter);

        // List
        zutatInput =(TextInputLayout) findViewById(R.id.textInputZutat2);
        einheitInput =(String) einheiten_spinner.getSelectedItem().toString();
        anzahlInput = (TextInputLayout) findViewById(R.id.textInputAnzahl2);
        try {
            anzahlint = Integer.parseInt(anzahlInput.toString());
        }catch (NumberFormatException nfe){}

        hinzufuegen_button = findViewById(R.id.zutat_hinzufuegen_button2);
        zutatenView =(ListView) findViewById(R.id.zutatenliste2);
        zutatenliste= new ArrayList<>();
        zutatenadapter = new ArrayAdapter<String>(this,R.layout.zutatenliste_items,R.id.textitemliste,zutatenliste);
        // zutatenadapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_item, zutatenliste);
        zutatenView.setAdapter(zutatenadapter);


        hinzufuegen_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // hinzufuegen(v , einheiten_spinner);
                ZutatClass newzutat = new ZutatClass(zutatInput.toString(),anzahlint,einheitInput);

                zutatenliste.add((String) newzutat.zutat_sting);
                zutatenadapter.notifyDataSetChanged();
                            }
        });
    }

}

This is what it shows me when i press the button a few times

这是我按几次按钮时看到的内容

我是Android Studio和Java的新手,所以我希望它不会造成太多混乱。 预先感谢。

2 个答案:

答案 0 :(得分:1)

首先,您需要在TextInputLayout中添加Edittext,然后在onclick方法上获得像这样的文本ZutatClass newzutat = new ZutatClass(zutatInput.getEditText().getText().toString(),anzahlint,einheitInput);

答案 1 :(得分:1)

我想问题是您正在尝试将TextInputLayout转换为字符串,而不是从中获取文本并将其转换为string,请尝试下面的代码

WSL

hinzufuegen_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // hinzufuegen(v , einheiten_spinner); ZutatClass newzutat = new ZutatClass(zutatInput.getEditText().getText().toString(),anzahlintgetEditText().g etText().toString() ,einheitInput); zutatenliste.add((String) newzutat.zutat_sting); zutatenadapter.notifyDataSetChanged(); } });

zutatInput.toString() --> zutatInput.getEditText().getText()