Java 显示列表的应用程序不工作

Java 显示列表的应用程序不工作,java,android,Java,Android,我尝试制作一个带有按钮的应用程序,按下按钮后,它将在editText中显示列表中的所有元素。 但我有一个问题,目前在按下按钮后,我在editText 依我看,我需要你给我一些建议,告诉我怎么做。也许我不应该使用循环 public class MainActivity extends AppCompatActivity { private Button button; private EditText editText; private ArrayList<Stri

我尝试制作一个带有按钮的应用程序,按下按钮后,它将在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类MainActivity扩展了AppCompatActivity{
私人按钮;
私人编辑文本;
private ArrayList list=new ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮=(按钮)findViewById(R.id.button);
editText=(editText)findViewById(R.id.editText);
列表。添加(0,“第一”);
列表。添加(1,“第二”);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
for(字符串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);

            }
        });
    }

}
public类MainActivity扩展了AppCompatActivity{
私人按钮;
私人编辑文本;
private ArrayList list=new ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮=(按钮)findViewById(R.id.button);
editText=(editText)findViewById(R.id.editText);
列表。添加(0,“第一”);
列表。添加(1,“第二”);
列表。添加(2,“3”);
列表。添加(3,“4”);
列表。添加(4,“5”);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串final_text=“”;
for(字符串abc:list){
最终文本=最终文本+“\n”+abc;
}
editText.setText(最终文本);
}
});
}
}

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

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

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

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

您需要创建多个edittext以添加列表中的多个值,或者您需要将列表中的所有值编译为一个字符串,如@Zakir has propose。

提示:您正在用“
second”覆盖
“first”
“first”
“second”单个单词仍在同一个区域中。由于
final\u text,每个列表元素都应该位于新行中+“\n”+abc
我在屏幕上添加了编辑问题,最后添加了新代码,它在设备上看起来如何,您能检查为什么不起作用吗?确保manifest.xml中editText的属性设置为多行:哇,很好,最后一个问题,是否可以在没有第一行员工的情况下完成?