每秒从listView显示字符串

我正在开发一个Android应用程序,用户将文本输入到EditText,单击一个按钮,它将被添加到ListView。

public void AddItem(View v) { EditText etNewItem = (EditText) findViewById(R.id.etNewItem); String itemText = etNewItem.getText().toString(); itemsAdapter.add(itemText); etNewItem.setText(""); } 

我希望listview中每个项目的值以1秒的间隔显示在textView中,一个接一个的项目。

这是我的完整主要活动代码:

 public class Math extends AppCompatActivity { private ArrayList items; private ArrayAdapter itemsAdapter; private ListView lvItems; TextView displayText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_math); lvItems = (ListView) findViewById(R.id.lvItems); items = new ArrayList(); itemsAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, items); lvItems.setAdapter(itemsAdapter); displayText = (TextView)findViewById(R.id.displayText); } public void AddItem(View v) { EditText etNewItem = (EditText) findViewById(R.id.etNewItem); String itemText = etNewItem.getText().toString(); itemsAdapter.add(itemText); etNewItem.setText(""); } public void start(View v) throws JSONException { RelativeLayout lc = (RelativeLayout)findViewById(R.id.contentContainer); lc.setVisibility(View.GONE); RelativeLayout tc = (RelativeLayout)findViewById(R.id.tvContainer); tc.setVisibility(View.VISIBLE); } } 

activity_math.xml代码如下。

        

总的来说,我想知道如何每秒使用ListView的每个值更新TextView。

尝试这个编辑的答案。 将其添加到您的按钮。

for (int i = 0; i < items.size(); i++) { displayText.setText(displayText.getText().toString() + "\n" + items.get(i)); }

你觉得这里有错误。

 public void AddItem(View v) { EditText etNewItem = (EditText) findViewById(R.id.etNewItem); String itemText = etNewItem.getText().toString(); items.add(itemText); // change the adapter to your ArrayList etNewItem.setText(""); itemsAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, items); lvItems.setAdapter(itemsAdapter); } 

为你的计时器添加到你的onCreate

 new Timer().scheduleAtFixedRate(new TimerTask() { @Override public void run() { if (items.size() > 0) { for (int i = 0; i < items.size(); i++) { displayText.setText(displayText.getText().toString() + "\n" + items.get(i)); } } else {} } },0,1000);