由於ListView中的項目內容有點複雜,我的ListView需要幾秒鐘才能滾動到特定項目。所以我想添加一個不確定的進度條來使其平滑。Android:我想在ListView選擇更改後隱藏進度條
要滾動到特定的項目,我使用listView.setSelection(n)來做到這一點。然後,我傾向於使用「setOnItemSelectedListener」事件處理程序在滾動後隱藏進度條。但事件處理程序不會接到呼叫。
可能是我的概念是完全錯誤的,我不知道該怎麼做(使用像這種情況下的進度條)。如果你給我看這個概念,更多的細節也是值得歡迎的。
非常感謝。
public class ListViewAdapter extends BaseAdapter {
private ProgressBar progressBar;
private Handler progressBarHandler = new Handler();
boolean isProgressBarDone;
private void jumpToSelectedItem(View arg0) {
...
listView.setSelection(selectedDaYunItem);
}
ListView listView = (ListView)((MyActivity)cellView.getContext()).findViewById(R.id.listview);
listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
// onItemSelected event handler has not triggered.
@Override
public void onItemSelected(AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
isProgressBarDone = true;
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
public class LiouYunCellAdapter {
cellView.setOnTouchListener(new View.OnTouchListener() {
// It takes a little seconds to operate.
private void jumpToSelectedItem(View arg0) {
....
}
@Override
public boolean onTouch(View arg0, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
progressBar = findProgressBar(arg0);
// ProgressBar start.
new Thread(new Runnable() {
public void run() {
isProgressBarDone = false;
while (!isProgressBarDone) {
// Update the progress bar
progressBarHandler.post(new Runnable() {
public void run() {
progressBar.setVisibility(View.VISIBLE);
}
}
});
}
}).start();
jumpToSelectedItem(arg0);
}
}
return true;
}
});
// End setOnTouchListener().
}
// end class LiouYunCellAdapter.
}
你可以張貼一些代碼,所以我們可以幫助? – Rarw
好吧,我已經添加代碼到崗位。 – Diviner