【问题标题】:android - get string from edittext and store it in arrayandroid - 从edittext获取字符串并将其存储在数组中
【发布时间】:2017-03-26 01:22:46
【问题描述】:

我有一个

EditText-addArea = (EditText) findViewById(R.id.editTextArea);

和 ArrayList - public static ArrayList<String> areaList = new ArrayList<String>();

还有一个按钮-addbtn = (Button) findViewById(R.id.addBTN);

这是我将字符串存储到数组中的代码。它显示 toastMessage 但我不知道它是否存储字符串。

 addbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String area = addArea.getText().toString();
                if (!area.isEmpty()){
                    areaList.add(area);
                    toastmessage(area+" added successfully.");
                    addArea.setText("");
                }
            }
        });

需要的是,微调器在下一个布局中。当我单击微调器时,它应该会显示我在编辑文本中输入的项目。

【问题讨论】:

  • 您要将areaList 退回到Spinner 吗?
  • 是的.. 微调器在下一个布局中。当我单击微调器时,它应该显示我在编辑文本中输入的项目。
  • 在你的IDE编辑器上,点击toastmessage(area+" added successfully.");行左边的空白处添加一个断点(出现红点)。接下来,在调试模式下运行您的应用程序(运行 > 调试)。单击该按钮时,应用程序将冻结并在您的 IDE 中显示一个窗口,然后您可以查看 areaList 中的元素。

标签: android arraylist


【解决方案1】:

查看列表是否添加,可以这样查看

 for (int i=0; i<areaList.size();i++){
        addArea.append(areaList.get(i));
        addArea.append("\n");
    }

您可以通过检查textView setText 值来知道string 是否存储到areaList 中。


要将areaList 传递给下一个活动,请添加此

Intent intent = new Intent(MainActivity.this, secondActivity.class);
intent.putExtra("areaList",areaList);

在第二个Activity中,使用这一行获取所有areaList的数据

ArrayList<String> areaList = (ArrayList<String>)getIntent().getSerializableExtra("areaList");

然后将areaList设置为spinner

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, areaList);
spinner.setAdapter(adapter);

【讨论】:

  • 我是初学者,你能解释一下吗?
  • 把代码放在toast消息下面,去掉.setText(""),就可以看到了
  • 对不起,是areaList.get(i)
  • 它在 EditText 中显示相同的字符串。
  • 如何在微调器中显示?
【解决方案2】:

为了确保添加了该项目,您可以打印array 或检查其size。 首先声明一个全局变量为int lastSize;

lastSize = 0; //we start from 0
addbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String area = addArea.getText().toString();
                if (!area.isEmpty()){
                    areaList.add(area);
                    //size has changed, means new item added successfully
                    if (areaList.size() > lastSize) {
                       toastmessage(area+" added successfully.");
                       addArea.setText("");
                    }
                    //lets update lastSize to record latest size
                    lastSize = areaList.size();
                }
            }
        });

【讨论】:

  • 如何打印数组?
  • @John Joe 在另一个答案中给出了打印数组的示例。
  • 我是一个初学者,老实说我不知道​​如何实现那个方法。你能帮我吗?所以我可以学习!!
  • @Spidey 我已经更新了代码以检查更改,这应该会有所帮助
猜你喜欢
  • 2022-07-20
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
  • 2022-09-29
  • 2014-02-18
  • 2011-12-24
  • 1970-01-01
  • 2019-10-13
相关资源
最近更新 更多