我正在开发一款应用程序,其功能如下:
根据网址加载来自互联网的10张图片。
在开始时,10个网址位于传递给我的baseadapter类的arraylist中。列表视图的顶部是2个按钮。
一旦在顶部添加图像(按钮2),添加到底部的图像(按钮1)。我似乎无法将图像添加到listview的开头(R.Id.Button2下的代码)
目前只是将图片放在底部。
public class MainActivity extends Activity implements OnClickListener {
String dirPath;
MyAdapter Ada;
Button B,B2;
ListView L;
ArrayList<String> data= new ArrayList<String>();
ArrayList<String> FirstList = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
B= (Button)findViewById(R.id.button1);
B2 =(Button)findViewById(R.id.button2);
dirPath = getFilesDir().getAbsolutePath() + File.separator + "newfoldername";
FirstList.add("url 1");
FirstList.add("url 2");
FirstList.add("url 3");
FirstList.add("url 4");
FirstList.add("url 5");
FirstList.add("url 6");
FirstList.add("url 7");
FirstList.add("url 8");
FirstList.add("url 9");
FirstList.add("url 10);
L=(ListView) findViewById(R.id.listView1);
B.setOnClickListener(this);
B2.setOnClickListener(this);
data= (ArrayList<String>) FirstList.clone();
Ada = new MyAdapter(MainActivity.this,data,dirPath);
L.setAdapter(Ada);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.button1:
data.add("url 11");
Ada.notifyDataSetChanged();
break;
case R.id.button2:
ArrayList<String> n = new ArrayList<String>();
n.add("url 12");
n.addAll(data);
Ada = new MyAdapter(MainActivity.this,n,dirPath);
L.setAdapter(Ada);
Ada.notifyDataSetChanged();
break;
}
}
}
答案 0 :(得分:0)
方法list.add()
将始终在底部添加项目。要将项目添加到列表顶部,请尝试:
1. Create an empty list, and add the new item into the list
2. using addAll method of the new list created, add the first list
that has all the other elements
3. Pass the new list that is populated to the adapter class,
or replace the old list with the new list
结果: 您要添加的项目现在位于顶部。
希望提示有帮助!
答案 1 :(得分:0)
创建一个空列表并向其添加一个对象。
手动或使用addAll
添加一堆新对象。
使用this XML value从底部定义要堆叠的列表。
将新列表传递给适配器。
致电Adapter.notifyDatasetChanged()