使用ArrayAdapter在ArrayList中显示值

时间:2017-08-04 05:18:09

标签: java android arraylist android-arrayadapter

我正在尝试创建一个ListView来显示通过EditText输入的值。我使用的是ArrayListArrayAdapter,但我恐怕不能完全理解它们是如何工作的。

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.listView1, num1);

我不确定为什么我无法使用android.R.id.listView1,其中listView1是活动中列表视图的id。这不是适配器需要列出我的ArrayList的资源ID吗?

以下是我的完整方法和说明。对不起,如果我的问题含糊不清,我不完全知道哪些术语可用于什么,我不打算引起混淆。

    public ArrayAdapter<String> adapter;
ArrayList<String> allScores = new ArrayList<>();
ListView listScores = (ListView)findViewById(R.id.listView1);

public void onButtonClick(View V){
    EditText input1 = (EditText) findViewById(R.id.scorePrompt);
    TextView output1 = (TextView) findViewById(R.id.textTotal);
    String blankCheck = input1.getText().toString(); //CHANGE INPUT IN scorePrompt TO STRING

    TextView output2 = (TextView) findViewById(R.id.custName); //TEST FOR ARRAY LIST DISPLAY
    if (blankCheck.equals("")) {
        Toast blankError = Toast.makeText(getApplicationContext(), "YOU CANT SKIP HOLES JERK", Toast.LENGTH_LONG);
        blankError.show();
    } else {
        //savedScores.add(input1.getText().toString());//Save input into array list
        int num1 = Integer.parseInt(input1.getText().toString()); //Get input from text box
        int sum = num1 + score2;
        score2 = sum;

        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.listView1, num1);

        output1.setText("Your score is : " + Integer.toString(sum));
        input1.setText(""); //Clear input text box

    }
};

有关我的意图的一些背景信息,我希望用户在EditText中输入整数,将这些值保存在ArrayList中,然后使用用户输入的值逐行填充ListView。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

尝试这种方式。

ArrayAdapter<String> itemsAdapter = 
    new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);

ListView listView = (ListView) findViewById(R.id.listView1);
listView.setAdapter(itemsAdapter);

答案 1 :(得分:0)

这里你必须使用未放入适配器的listview的setadapter

试试这个

  adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,allscores);
  listscores.setAdapter(adapter)

如果你想添加输入内容而不是制作Arraylist,只需将它传递给适配器的第三个参数