Naz*_*141 1 java arrays android arraylist
我有一个ArrayList<String> tokens;在ListViewClick上存储令牌值.在我从ArrayList<String> tokens其中检索数据时添加值后,仅显示最后添加的值
ArrayList<String> tokens;
...
....
public void onItemClick(AdapterView<?> listView, View view,
int position, long id) {
tokens = new ArrayList<String>();
Cursor cursor = (Cursor) listView.getItemAtPosition(position);
String selectedtoken = cursor.getString(cursor.getColumnIndexOrThrow("ContactToken"));
tokens.add(selectedtoken);
}
...
...
Log.i("array: ", tokens.toString()); // shows the last added value
Run Code Online (Sandbox Code Playgroud)
移动声明
tokens = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
onItemClick优选地,该方法优选地进入构造函数中,因此每次调用该方法时都不重新初始化,例如
public MyClass() {
tokens = new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)
哪里tokens可以定义为
private List<String> tokens;
Run Code Online (Sandbox Code Playgroud)
您必须移动方法ArrayList外部的初始化onItemClick().目前,每次单击某个项目时,都会创建一个新项目ArrayList
ArrayList<String> tokens = new ArrayList<String>();
...
....
public void onItemClick(AdapterView<?> listView, View view,int position, long id) {
Cursor cursor = (Cursor) listView.getItemAtPosition(position);
String selectedtoken = cursor.getString(cursor.getColumnIndexOrThrow("ContactToken"));
tokens.add(selectedtoken);
}
...
...
Log.i("array: ", tokens.toString()); // shows the last added value
Run Code Online (Sandbox Code Playgroud)