【问题标题】:How to add Edit Text Values to List-view如何将编辑文本值添加到列表视图
【发布时间】:2019-10-30 10:38:34
【问题描述】:

我是编程新手,我目前正在创建一个项目,其中我使用了 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】:

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

    @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("");
    
            }
    
        });
    
    }
    

    【讨论】:

    • 谢谢先生,它对我有用。但是你能帮我弄清楚如何在列表视图中垂直或水平对齐吗?
    • 还有一件事先生,我必须将列表声明为最终列表如果我必须将此列表保存到另一个列表怎么办???
    • @Sunny,您可以为列表视图中的项目创建自定义视图。 link
    • @Sunny 你可以将你的final 变量保存到另一个变量中。
    猜你喜欢
    • 1970-01-01
    • 2022-12-14
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    相关资源
    最近更新 更多