商店上一行類變量:
View previous;
...
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
if(previous != null)
previous.setVisibility(View.INVISIBLE);
// Set the current button to visible while saving it for the next click
previous = view.findViewById(R.id.button);
previous.setVisibility(View.VISIBLE);
}
加成從評論
你說得對。適配器的觀點回收是影響其他行讓我們擴展你使用任何適配器,並覆蓋其getView()
方法:
public int selectedRow = -1;
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
// Here, either use findViewById() (slower) or the ViewHolder method (faster) to load the button:
// Button button = ...
if(position == selectedRow)
button.setVisibility(View.VISIBLE);
else
button.setVisibility(View.GONE);
return view;
}
而在你onItemClick()
方法中添加這樣一行:
adapter.selectedRow = position;
來源
2012-08-28 04:52:54
Sam
上面的代碼在說話。感謝名單。但是佈局的大小增加了。我怎樣才能使它達到原來的尺寸? –
完成!而不是View.INVISIBLE,我已經轉換成View.GONE。 –
存在問題。當我向下滾動時,該按鈕在下面的第二項中是可見的。我認爲這個觀點正在得到回收。有什麼建議麼? –