在评论中解释:Adding onListItemLick/onItemLongClick in a ListFragment
问题是由ListFragment中单个元素的布局中的ImageButton
生成的,即使focusable
元素设置为false,它也在窃取输入,所以我不得不从布局中删除它。 / p>
我有一个由SimpleCursorAdapter扩展类填充的ListFragment(主要用于覆盖newView方法)但我想在用户按下(或长按)适配器生成的列表中的项目时添加AlertDialog 。
我使用onListItemClick
方法通过简单的日志写入尝试了onItemLongClick
和Log.d
,但两种情况都没有发生任何事情,我不知道问题出在哪里,因为代码非常简单:
public class FragmentD extends ListFragment {
private SQLiteDatabase db;
@Override
public void onActivityCreated (Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
myDatabase myDBHelper = new myDatabase(getActivity());
db = myDBHelper.getWritableDatabase();
Log.d("DB", "Insert fatto");
String[] res_columns = new String[] {myDatabase.COLUMN2, myDatabase.COLUMN2,};
String sortOrder = myDatabase.COLUMN1 + " DESC";
String where = "*";
Cursor testCursor = db.rawQuery("select * from " + database.DATABASE_TABLE, null);
myAdapter adapter = new myAdapter(getActivity(),
R.layout.list_element,
testCursor,
res_columns,
new int[] { },
0);
setListAdapter(adapter);
}
@Override
public void onListItemClick (ListView l, View v, int pos, long id) {
super.onListItemClick(l, v, pos, id);
Log.d("CLICK", "pressed");
}
答案 0 :(得分:1)
编辑答案: 也许布局的组件正在窃取布局的其他组件的输入
答案 1 :(得分:0)
添加超级构造函数并覆盖它:
$scope.JsonVar.unshift({SubLoc:'Select', Description:'Select'});
编辑:试试这段代码
@Override
public void onListItemClick (ListView l, View v, int pos, long id) {
super.onListItemClick(l, v, pos, id);
Log.d("CLICK", "pressed");
}
答案 2 :(得分:0)
我有两个解决方案
简单覆盖onListItemClick
@覆盖 public void onListItemClick(ListView l,View v,int position,long id){ super.onListItemClick(l,v,position,id);
git clone http://[IP]:80/project.git
}
在根布局上。添加此代码
机器人:descendantFocusability = “blocksDescendants”
希望有所帮助