显示列表的应用无效

时间:2017-06-07 21:51:35

标签: java android

我尝试使用按钮创建一个按钮,按下后按钮将显示editText中列表中的所有元素。 但我有一个问题,目前在我按下按钮之后我只看到"第二个"在editText中 在我看来,我需要一些关于如何做的提示。也许我不应该使用循环?

public class MainActivity extends AppCompatActivity {

    private Button button;
    private EditText editText;
    private ArrayList<String> list = new ArrayList<>();

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

        button = (Button) findViewById(R.id.button);
        editText = (EditText) findViewById(R.id.editText);

        list.add(0, "first");
        list.add(1, "second");

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                for (String abc: list){

                    editText.setText(abc);

                }


            }
        });
    }

}

____编辑

public class MainActivity extends AppCompatActivity {

    private Button button;
    private EditText editText;
    private ArrayList<String> list = new ArrayList<>();

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

        button = (Button) findViewById(R.id.button);
        editText = (EditText) findViewById(R.id.editText);

        list.add(0, "first");
        list.add(1, "second");
        list.add(2, "3");
        list.add(3, "4");
        list.add(4, "5");

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String final_text = "";

                for (String abc: list){

                    final_text = final_text + "\n" + abc;

                }

                editText.setText(final_text);

            }
        });
    }

}

enter image description here

2 个答案:

答案 0 :(得分:2)

您正在覆盖editText中的文字。从list累积字符串并在循环外执行setText: -

@Override
public void onClick(View v) {
  String final_text ="";
  for (String abc: list){
   final_text = final_text +"\n" + abc;
  }
  editText.setText(final_text);
}

答案 1 :(得分:0)

在此循环中,您将始终将列表的最后一个字符串放入edittext

for (String abc: list){
    editText.setText(abc);
}

您需要创建多个edittext以从列表中添加多个值,否则您需要将列表中的所有值编译为@Zakir建议的一个字符串。