Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的Android ArrayList只显示最后的附加值_Java_Android_Arrays_Arraylist - Fatal编程技术网

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()。您需要在类级别进行初始化。