And*_*bbs 14 android android-adapterview
我正在尝试(用于学习目的)我自己实现的简单AdapterView,其中的项目来自基本的适配器(来自sdk示例的ImageAdapter).
实际代码是这样的:
public class MyAdapterView extends AdapterView<ImageAdapter> implements AdapterView.OnItemClickListener{
private ImageAdapter mAdapter;
public MyAdapterView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initThings();
}
private void initThings(){
setOnItemClickListener(this);
}
@Override
public ImageAdapter getAdapter() {
// TODO Auto-generated method stub
return mAdapter;
}
@Override
public void setAdapter(ImageAdapter adapter) {
// TODO Auto-generated method stub
mAdapter=adapter;
requestLayout();
}
View obtainView(int position) {
View child = mAdapter.getView(position, null, this);
return child;
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
for(int i=0;i<mAdapter.getCount();i++){
View child = obtainView(i);
child.layout(10, 70*i, 70, 70);
addViewInLayout(child, i, null, true);
}
this.invalidate();
}
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Log.d("MYEXAMPLES","Clicked an item!");
}
}
Run Code Online (Sandbox Code Playgroud)
这不是编码杰作,它只是显示带有图片的伪列表视图.我知道我可以使用ListView,GridView,Spinner等,但我对android很新,我想弄清楚它上面的一些东西.
那么,这里的问题是:为什么我的onItemClick没有解雇?
使用与GridView相同的ImageAdapter,一切正常,但是当我使用上面的类时,我什么也得不到.在AdapterView.java里面有那些click,longclick等事件的代码......那么为什么我不能解雇它们呢?也许我误解了AdapterView的工作原理?我应该扩展其他基类吗?为什么?
希望能在这里找到更有经验的指导,在此先感谢.
小智 0
与其扩展 AdapterView,不如尝试使用 baseAdapter。当你定制你的适配器时,它有下面给出的一种方法。
getView(int position, View convertView,ViewGroup group)
Run Code Online (Sandbox Code Playgroud)
在上面的方法中,您可以访问列表视图的每个列表项的布局,在这里您可以为每个控件设置所有支持的事件。
| 归档时间: |
|
| 查看次数: |
14130 次 |
| 最近记录: |