ArrayList 在方法外填充
Posted
技术标签:
【中文标题】ArrayList 在方法外填充【英文标题】:ArrayList populating outside the method 【发布时间】:2018-05-31 10:58:20 【问题描述】:请检查更新的代码。它是说 arraylist 为空,同时试图从 oncreate 方法中获取元素。顺便说一句,我将元素添加到内部类中的数组列表中。 任何帮助将不胜感激。 谢谢..
private ArrayList<String> imageName;
ListView listView;
ArrayList<String> test;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
listView = findViewById(R.id.clipslistview);
test = new ArrayList<>();
credentialProvider();
setTransferUtility();
getAll();
Toast.makeText(context, test.get(0)+"", Toast.LENGTH_SHORT).show();
Thread thread = new Thread()
public void run()
final ListObjectsV2Request req = new ListObjectsV2Request().withBucketName("bucket-1234314-**********").withStartAfter(".jpg").withMaxKeys(10);
ListObjectsV2Result result;
imageNames = new ArrayList<>();
result = amazonS3Client.listObjectsV2(req);
for (S3ObjectSummary objectSummary :
result.getObjectSummaries())
clipNames.add(objectSummary.getKey()+"");
Log.d("TEEEST", objectSummary.getKey());
;
【问题讨论】:
那个线程被调用了吗? developer.android.com/reference/java/lang/Thread.html 看到这个链接 为什么需要一个单独的线程来将数据添加到列表中?你是从哪里开始的? 因为中间有网络操作线程。所以我将我的元素添加到数组列表中。 【参考方案1】:试试这个
List<String> names = new ArrayList<>():
Thread thread = new Thread()
@Override
public void run()
names.add("Hi");
names.add("KK");
names.add("Hello");
;
thread.start();
public void lengthOflit()
Toast.makeText(getApplicationContext, names.size()+"", Length.SHORT).show;
仅供参考
无需使用 Thread 将数据添加到您的 ArrayList
List<String> names = new ArrayList<>():
names.add("Hi");
names.add("KK");
names.add("Hello");
【讨论】:
我使用了线程,因为在我获取元素的位置之间存在网络操作。对于该网络操作,我需要在不同的线程上运行它。 不,可能是因为我在内部类中添加了元素。 你知道如何访问像 Thread thread = new Thread() public void run() names.add(something); 这样的内部类中添加到 arraylist 的元素吗? 喜欢这个names.get(0)
names.get(1)
names.get(2)
以上是关于ArrayList 在方法外填充的主要内容,如果未能解决你的问题,请参考以下文章
填充 Listview 时 Arraylist 和 Hashmap 的问题
ArrayList 由用户输入填充到 ComboBox(选择 JPS)