@Override
public void onViewCreated (View view, Bundle savedInstanceState) {
// Hashmap for ListView
albumsList = new ArrayList<HashMap<String, String>>();
// Loading Albums JSON in Background Thread
new LoadAlbums().execute();
// get listview
ListView lv = getListView();
lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2,
long arg3) {
.................
}
});
}
您好,这是我的代码如何获取ListView并创建setOnItemClickListener。但是,我需要创建GridView而不是ListView。
ListView lv = getListView();
如何更改此行以获取GridView?
答案 0 :(得分:4)
虽然您接受了使用GrdView的答案,但我仍然愿意 提高我的声音,RecyclerView比ListView更好,更优化 和GridView。
我仍然建议使用RecyclerView代替 ListView或Gridview。
以下是鼓励使用RecyclerView
的一些观点Android创建了RecyclerView作为ListView改进,所以是的,您可以使用ListView控件创建附加列表,但使用RecyclerView更容易:
mRecyclerView =(RecyclerView)findViewById(R.id.my_recycler_view);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
或强>
mRecyclerView.setLayoutManager(new GridLayoutManager(this,2));
因此,总而言之,RecyclerView是一个更灵活的控制,用于处理“列表数据”,遵循关注委托模式,并为自己留下一个任务 - 回收项目。
答案 1 :(得分:0)
在布局中定义GridView
。
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(HelloGridView.this, "" + position,
Toast.LENGTH_SHORT).show();
}
});
答案 2 :(得分:0)
我从您的代码中了解到,您正在将图像从互联网加载到gridview中。您应该按照以下步骤正确加载带有图像的gridview -
1 - 在你的选择中添加一个gridview并获得它
GridView gridView = mView.findViewById(R.id.yourgridId);
2 - 然后定义一个扩展BaseAdapter的类,它将为您的GridView保存数据并用它填充GridView并覆盖它的getView()方法,它将成为单个网格的布局。
3-致电gridView.setAdapter(adapter);
以使用gridview设置适配器
4-在后台线程中加载图像并添加一个响应的监听器
5 - 当你在听众中得到回应时,将图像添加到你的Arraylist&lt; Bitmap&gt;在Adapter类中,调用notifyDataSetChanged()来刷新GridView