2009-02-01 47 views
8

我想實現一個ListView,這對我的光標沒有任何影響。現在取決於你點擊哪一行,根據在該行上按下的信息(就像它應該和預期的一樣)將你帶到一個新的活動。我希望有一個按鈕可以刪除行,這樣用戶可以按行的任何部分來啓動新的行爲,但是如果他們按下該行上的按鈕,它將刪除行(或啓動刪除行爲/功能)。Android:在列表視圖上執行多個操作 - 焦點問題

如果你可以看看@DroidRecord,他們有一個類似的佈局,因爲我期待實現。

謝謝!

Chris。

回答

4

你的問題是什麼?如何將一個按鈕添加到列表行?

非常簡單,就像您期望它將被添加到行的佈局中一樣。

不幸的是,雖然這也將使整個行「不可觸摸」。我問過的Google開發者說,這是設計的(據我記憶),並且您應該使用TouchDelegate來應對這一點。由於沒有樣本,甚至沒有在android源碼中,只有非常薄的documentation,這並不適用於我

無論如何,似乎沒有多少應用程序在列表行中使用按鈕。我只知道我的(newsrob,請參閱文章列表)和鬧鐘。也許你可以使用上下文菜單?

否則,醜陋的解決方案將添加到getView方法的行視圖上調用setOnClickListener()。

乾杯

+0

你能解釋一下如何將它設置到行視圖嗎?我的行被繪製爲填充數據函數的一部分,我調用了SimpleCursorAdapter(this,R.layout.row_detail,c,from,to); 我應該重寫什麼方法來設置onclick監聽器。當我在創建方法上嘗試時,我的應用程序崩潰。 – Chrispix 2009-02-07 10:15:25

6

看到另外一個可能的解決方法 - 您可以使用一個ImageView的,而不是按鈕,並設置的ImageView onClickListener(例如,當你膨脹的細胞視圖)。

ImageView不可聚焦,因此它不會阻止調度OnListItemClick(),並且當您單擊圖像時,只會激發圖像的偵聽器。

0

我要感謝董事會hint上卸下focusable狀態的按鈕(一個或多個),它救了我的一天。

但是,對於信息,由於按鈕不再focusable - state_focused <選擇> xml - ,其設計將不再顯示給用戶。

雖然這些按鈕仍然會獲得狀態pressed,但也可以在父視圖的任何其他位置(任何位置,但另一個按鈕)單擊!

記住這一點,它不可能是一個很好的解決方案,但它確實很好。

0

我想這是可以點擊的按鈕,但它並沒有爲我工作 機器人:可調焦=「假」 機器人:focusableInTouchMode =「假」

所以我所做的就是改變活動佈局來滾動查看,然後在其中添加一個linerLayout。 之後,您可以將按鈕添加到佈局,每個按鈕都可以點擊。