Java 我的Android ArrayList只显示最后的附加值
我有一个Java 我的Android ArrayList只显示最后的附加值,java,android,arrays,arraylist,Java,Android,Arrays,Arraylist,我有一个ArrayList令牌要在ListView上存储令牌值,请单击。当我从ArrayList tokens检索数据时,添加值后,它只显示最后添加的值 ArrayList<String> tokens; ... .... public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
ArrayList令牌代码>要在ListView上存储令牌值,请单击。当我从ArrayList 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
ArrayList令牌;
...
....
public void onItemClick(AdapterView列表视图、视图、,
内部位置,长id){
令牌=新的ArrayList();
游标游标=(游标)listView.getItemAtPosition(位置);
String selectedtoken=cursor.getString(cursor.getColumnIndexOrThrow(“ContactToken”);
tokens.add(selectedtoken);
}
...
...
Log.i(“数组:”,tokens.toString());//显示最后的附加值
移动语句
tokens = new ArrayList<String>();
其中,标记
可定义为
private List<String> tokens;
私有列表令牌;
移动语句
tokens = new ArrayList<String>();
其中,标记
可定义为
private List<String> tokens;
私有列表令牌;
您必须将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
ArrayList标记=新的ArrayList();
...
....
public void onItemClick(AdapterView列表视图、视图视图、整型位置、长id){
游标游标=(游标)listView.getItemAtPosition(位置);
String selectedtoken=cursor.getString(cursor.getColumnIndexOrThrow(“ContactToken”);
tokens.add(selectedtoken);
}
...
...
Log.i(“数组:”,tokens.toString());//显示最后的附加值
您必须将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
ArrayList标记=新的ArrayList();
...
....
public void onItemClick(AdapterView列表视图、视图视图、整型位置、长id){
游标游标=(游标)listView.getItemAtPosition(位置);
String selectedtoken=cursor.getString(cursor.getColumnIndexOrThrow(“ContactToken”);
tokens.add(selectedtoken);
}
...
...
Log.i(“数组:”,tokens.toString());//显示最后的附加值
在onCreate()方法中初始化Arraylist在onCreate()方法中初始化Arraylist问题是,您试图在初始化令牌之前访问您的信息
你必须移动它。例如onCreate方法
也可以将其移动到构造函数
第三种方法是改变这一点:
ArrayList<String> tokens;
ArrayList令牌;
为此:
ArrayList<String> tokens= new ArrayList<String>();
ArrayList标记=新的ArrayList();
问题是,您的用户试图在令牌初始化之前访问您的信息
你必须移动它。例如onCreate方法
也可以将其移动到构造函数
第三种方法是改变这一点:
ArrayList<String> tokens;
ArrayList令牌;
为此:
ArrayList<String> tokens= new ArrayList<String>();
ArrayList标记=新的ArrayList();
代码初始化错误tokens=new ArrayList()代码>。您需要在类级别进行初始化。错误初始化代码tokens=new ArrayList()代码>。您需要在类级别进行初始化。