- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试将 SherlockListFragment
与自定义适配器一起使用,但 onListItemClick 方法不起作用。我根本无法点击列表。有人可以帮我修复我的 onListItemClick
方法吗?
public class Wallpaper extends SherlockListFragment implements
OnItemClickListener {
WallpaperAdapter wAdapter;
ArrayList<WallpaperHolder> wallpapers;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
wallpapers = new ArrayList<WallpaperHolder>();
for (int i = 0; i < 4; i++) {
final int pos = i;
wallpapers.add(new WallpaperHolder() {
{
title = "Title" + pos;
location = "";
}
});
}
wAdapter = new WallpaperAdapter(getActivity(), wallpapers);
setListAdapter(wAdapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.activity_wallpaper, container, false);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
}
public void PassIntent() {
Intent intent = new Intent(getActivity(), ImageViewDialog.class);
intent.putExtra("LOC", "/storage/sdcard/pic/Desert.jpg");
startActivity(intent);
getActivity().overridePendingTransition(R.anim.fadein, R.anim.fadeout);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
Toast.makeText(getActivity(), "OnItemClick", Toast.LENGTH_LONG).show();
}
壁纸SherlockListFragment的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FAFAFA"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Wallpaper" >
<ListView
android:id="@android:id/list"
android:layout_width="500dp"
android:layout_height="300dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="151dp" >
</ListView>
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:focusable="false"
android:text="Enable wallpaper Changer" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignLeft="@android:id/list"
android:layout_alignTop="@+id/checkBox1"
android:scaleType="fitCenter"
android:src="@drawable/ic_images" />
适配器代码
public class WallpaperAdapter extends BaseAdapter {
List<WallpaperHolder> wallpapers;
List<WallpaperHolder> wallpapers2;
LayoutInflater inflater;
Context c;
public WallpaperAdapter(Context context,List<WallpaperHolder> wallHolder){
this.wallpapers = wallHolder;
this.wallpapers2 = wallHolder;
this.c = context;
this.inflater = (LayoutInflater) this.c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return wallpapers.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stubs
WallpaperHolder item = wallpapers.get(position);
LayoutInflater inflater = (LayoutInflater) c
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.wallpaper_row, null);
TextView txtTitle = (TextView) vi.findViewById(R.id.textView1);
ImageButton btn = (ImageButton) vi.findViewById(R.id.deleteButtonWallpaper);
btn.setBackgroundColor(Color.TRANSPARENT);
txtTitle.setText(item.title);
final int pos = position;
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
wallpapers.remove(pos);
notifyDataSetChanged();
}
});
return vi;
}
}
简单的row.xml
<ImageButton
android:id="@+id/deleteButtonWallpaper"
android:layout_width="60dp"
android:layout_height="45dp"
android:layout_alignParentRight="true"
android:scaleType="fitCenter"
android:src="@drawable/ic_delete"
/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/deleteButtonWallpaper"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="14dp"
android:layout_toLeftOf="@+id/deleteButtonWallpaper"
android:text="TextView" />
最佳答案
添加
android:descendantFocusability="blocksDescendants"
到您在 getView
中扩充的 xml 中的根元素
我的猜测是 ImageButton 将焦点放在列表行的单击上。
关于java - onListItemClick 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21293268/
在我的应用程序中,我有一个扩展 ListActivity 并使用 ListView 的类。我的 onListItemClick 方法只是不想工作。在该方法内部,它必须确定所单击的项目是“锻炼 A”还是
我尝试将 SherlockListFragment 与自定义适配器一起使用,但 onListItemClick 方法不起作用。我根本无法点击列表。有人可以帮我修复我的 onListItemClick
我不认为这个问题是由我的 ListActivity 子类引起的。我认为这与我的 BaseAdapter 子类有关: package com.mohit.gtodo; import com.mohit.
我将 onListItemClick 与 simple_list_item_1 结合使用 public class DrinkCategoryActivity extends ListActivity
我正在尝试放置 onListItemClick,但是当我启动应用程序时,onListItemClick 没有任何反应。谁能帮我这个? 这是我的代码: @Override public void
您好,我目前在 Android 市场上的一些应用程序上遇到错误: 这是堆栈跟踪: java.lang.NullPointerException at ****.****.MainActi
我收到此错误 - 无法解析方法 'onListItemClick(android.widget.ListView,android.view.View,int,long)'我试过使用 onClickLi
我试图从数据库 onListItemClick 的“threadid”列中获取一行的值,但是在我单击的每个列表项上,我都会获取上一行的值,当我单击列表的第一项时,我的应用程序崩溃,我不知道问题出在哪里
public class List_Items extends ListActivity{ private ArrayList> mylist = new ArrayList>(); publi
我正在处理一个 ListView ,当您单击一个项目时,它会显示一个带有 2 个选项的警报对话框,在他们选择一个选项后,它会将他们带回 ListView ,在那里他们可以再次选择另一个选项。出于某种原
你能解释一下这个方法的参数吗?我不明白他们。 http://developer.android.com/reference/android/app/ListActivity.html#setListA
当我点击项目时,我的 onListItemClick 永远不会被调用,类是扩展 fragment 而不是列表 fragment ,因为我在这个 fragment 中有其他 View 项目不是列表,那么
我正在将一个数组加载到 ListView 中,当我单击列表项时,我想在同一 Activity 中的 TextView 中显示该项目。该列表当前正在加载,但当单击某个项目时程序崩溃。有什么想法吗? im
未调用函数 onListItemClick: 列表 Activity package it.devapp.listview; import java.util.ArrayList; import co
我正在为名为 row.xml 的 listView 列表项使用自定义布局 这是我的 row.xml 文件: 在上面的布局中,onListItemCli
现在我正在尝试创建一个 android onListItemClick 方法。但每次我这样做时都会遇到大量语法错误,指出预期的分号。通常,当我遇到这样的语法错误时,我知道只需添加一个分号,但在这种情况
我在 ListActivity 中随机收到 nullpointerException(我无法一致地重现该错误)。 StackTrace 在第一行 super.onListItemClick() 上显示
在我的应用程序中,我有一个列表。该列表包括一些文本和一个复选框。在列表的 Xml 定义中,如果我输入 android:focusable="true" 然后我可以单击它并将其状态从选中更改为未选中,反
最后编辑我在这里找到解决方案的问题:http://code.google.com/p/android/issues/detail?id=3414#c27 原帖我有一个 ListView(实际上是一个
我是新来的,所以如果这看起来像是一个愚蠢的问题,请多多包涵。我目前正在使用 onListItemClick 来检索所选 ListItem 的 ID。我对 int position 和 long id
我是一名优秀的程序员,十分优秀!