0

解決在註釋添加onListItemLick/onItemLongClick:Adding onListItemLick/onItemLongClick in a ListFragment 在該被偷竊的輸入甚至與focusable元件設置爲false ListFragment所述單個元件的佈局由一個ImageButton產生的問題,所以我必須從佈局中刪除它。我有一個由擴展類SimpleCursorAdapter填充的ListFragment(主要用於覆蓋newView方法),但是我想在用戶按下(或長按)適配器生成的列表中的項目時添加AlertDialog。 我tryed都onListItemClickonItemLongClick用一個簡單的日誌寫入使用Log.d方法,但什麼也沒有發生在這兩種情況下,我不知道是因爲代碼的問題是非常簡單的:在ListFragment

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

嘗試一下; 變化 onListItemClick 要 onItemClick – Want2bExpert

+0

@Arrigo Pierotti ...重寫它 – Jerry

+0

我刪除了需要執行'的onItemClick'代替'onListItemClick'和一些額外的東西'@當我拷入Override'只是失蹤並粘貼在這裏。 –

回答

1

編輯答案: 也許佈局的組成部分,從佈局的其他組件偷輸入

+0

我刪除了一些額外的實現onItemClick而不是'onListItemClick'所需的東西,而@ @ Override'只是當我在這裏複製並粘貼時丟失 –

+0

哦,所以即使您重寫該方法,它也可以工作嗎? – Jerry

+0

不,我編輯了問題中的代碼,所以它是我在我的模擬器上運行的確切代碼(那裏有額外的東西) –

0

添加超構造函數和覆蓋它:

@Override 
public void onListItemClick (ListView l, View v, int pos, long id) { 
    super.onListItemClick(l, v, pos, id); 
    Log.d("CLICK", "pressed"); 
} 

編輯:試試這個代碼

public class FragmentD extends ListFragment { 

private SQLiteDatabase db; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View v = inflater.inflate(YOUR LISTFRAGMENT LAYOUT HERE, container, false); 

    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); 

    return v; 
} 

@Override 
public void onListItemClick (ListView l, View v, int pos, long id) { 
    super.onListItemClick(l, v, pos, id); 
    Log.d("CLICK", "pressed"); 
} 
+0

我刪除了實現和getListView,因爲它們在'onItemClick'和@override只在這裏丟失(當我在這裏複製並粘貼時,我不得不做一些修改),但沒有任何改變,仍然沒有登錄日誌... –

+0

你忘了超級構造函數,並刪除這個 - >實現AdapterView.OnItemClickListener – user3641702

+0

超級構造函數已被添加(我不好在沒有添加它在代碼中的開始),仍然無法運行 –

0

我有去噸2溶液

  1. 只需覆蓋onListItemClick

    @Override 公共無效onListItemClick(ListView的升,視圖V,INT位置,長ID){ super.onListItemClick(L,V,位置,ID) ;

    Log.i("position",position); 
    

    }

  2. 在根佈局。添加該代碼

    機器人:descendantFocusability =「blocksDescendants」

希望它可以幫助

+0

我刪除了需要一些額外的東西爲了實現'onItemClick'而不是'onListItemClick',並且'@ Override'在我複製並粘貼到這裏時只是缺失 –