Android的twoWayGridView onItemClickListenter不工作
问题描述:
我已经实现了two-way-gridview library通过添加库和双向gridview到我的Android项目。Android的twoWayGridView onItemClickListenter不工作
的XML:
<com.jess.ui.TwoWayGridView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#000000"
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
app:cacheColorHint="#E8E8E8"
app:columnWidth="80dp"
app:rowHeight="80dp"
app:numColumns="3"
app:numRows="auto_fit"
app:verticalSpacing="16dp"
app:horizontalSpacing="16dp"
app:stretchMode="spacingWidthUniform"
app:scrollDirectionPortrait="horizontal"
app:scrollDirectionLandscape="horizontal"
app:gravity="left" />
的Java代码:
//set up adapter
CustomCursorAdapter dataAdapter = new CustomCursorAdapter(context, cursor);
TwoWayGridView gridView = (TwoWayGridView) findViewById(R.id.listView1);
//assign adapter to ListView
gridView.setAdapter(dataAdapter);
出现这种情况:
- 网格可以水平滚动 - 恭喜!
- 所有项目都是
TextViews
与相同的元素(第一项) - 不是。 - 网格中没有项目可点击 -
setOnItemClickListener
不兼容 - 不是。
Eclipse的错误:
The method setOnItemClickListener(TwoWayAdapterView.OnItemClickListener) in the type TwoWayAdapterView is not applicable for the arguments (new AdapterView.OnItemClickListener(){})
在这段代码:
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
//get the cursor, positioned to the corresponding row in the result set
Cursor cursor = (Cursor) listView.getItemAtPosition(position);
//get the media file from this row in the database
String fileName = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseHelper.FIELD_RESOURCE));
String suffix = ".jpg";
if(fileName.equalsIgnoreCase("null")){
//Text item so do stuff for that
}else if(fileName.endsWith(suffix)){
//Image item so do stuff for that
}else {
//Video item so do stuff for that
}
}
});
我应该写为双向-GridView的自定义onItemClickListener?
答
你或许应该只是改变:
gridView.setOnItemClickListener(new OnItemClickListener() {}
通过
gridView.setOnItemClickListener(new TwoWayAdapterView.OnItemClickListener() {}
我发现了这样的回答:http://stackoverflow.com/a/17707452/956975对解决方案有何评论? – marienke