如何将编辑文本值添加到列表视图

问题描述 投票:0回答:1

我是编程新手,我目前正在创建一个项目,在该项目中我使用了3个编辑文本,一个按钮和一个列表视图。

我能够在按钮单击时在列表视图中添加所有3个编辑文本值,但是它只运行一次,这意味着它在列表视图中显示所有3个值,但是当我输入新值时,它也会删除前一个值如果我想在列表视图中添加5次,则不应删除前一个,而是我在列表中获得5次所有值。另外,如果我单击按钮5次,则列表视图会垂直出现,它应该以水平方式将所有三个编辑文本值存储5次。

我已经尝试过for循环,但是由于没有任何改变,它对我不起作用。

public class secondActivity extends AppCompatActivity {

    EditText edit1, edit2, edit3;
    Button button;

    ListView listView;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);

        edit1 = findViewById(R.id.name);
        edit2 = findViewById(R.id.desigination);
        edit3 = findViewById(R.id.post);

        listView = findViewById(R.id.list_view);


        button = findViewById(R.id.list_button);
        button.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
            @Override
            public void onClick(View v) {

                String itemName = edit1.getText().toString();
                String itemDescription = edit2.getText().toString();

                List list = Collections.synchronizedList(new ArrayList());

                list.add(itemName);
                list.add(itemDescription);

                ArrayAdapter lists1 = new ArrayAdapter(secondActivity.this, android.R.layout.simple_list_item_1, list);
                listView.setAdapter(lists1);
                edit1.setText("");
                edit2.setText("");

            }

        });

    }
java android android-listview
1个回答
0
投票

不要在每次单击按钮时创建列表。

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);

    edit1 = findViewById(R.id.name);
    edit2 = findViewById(R.id.desigination);
    edit3 = findViewById(R.id.post);

    listView = findViewById(R.id.list_view);

    List list = Collections.synchronizedList(new ArrayList());


    button = findViewById(R.id.list_button);
    button.setOnClickListener(new View.OnClickListener() {
        @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
        @Override
        public void onClick(View v) {

            String itemName = edit1.getText().toString();
            String itemDescription = edit2.getText().toString();

            list.add(itemName);
            list.add(itemDescription);

            ArrayAdapter lists1 = new ArrayAdapter(secondActivity.this, 
            android.R.layout.simple_list_item_1, list);
            listView.setAdapter(lists1);
            edit1.setText("");
            edit2.setText("");

        }

    });

}
© www.soinside.com 2019 - 2024. All rights reserved.