我正在尝试创建一个ListView来显示通过EditText输入的值。我使用的是ArrayList
和ArrayAdapter
,但我恐怕不能完全理解它们是如何工作的。
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。谢谢你的帮助。
答案 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,只需将它传递给适配器的第三个参数