0
ListView를 SwipeRefreshLayout에 추가했습니다. 그러나 onRefresh 메서드가 작동하지 않습니다. listview는 데이터와 함께 제공되며 listview를 스크롤하면 onRefresh가 작동하지 않습니다. 첫 번째 항목을 볼 때 swipeContainer를 활성화하는 메서드를 사용하고 있습니다. 내 코드를 검사하고 내가 뭘 잘못하고 있는지 말해 줄 수 있겠 니?SwipeRefreshLayout onRefresh 메서드가 작동하지 않습니다.
여기 내 활동입니다 :
public class TimelineActivity extends Activity {
private SwipeRefreshLayout swipeContainer;
JSONObject jsonobject;
JSONObject jsonobj;
CityList list;
ArrayList<CityInfo> myList;
SharedPreferences sp;
JSONArray jArray = null;
JSONArray jResult = null;
Object info;
String resultmsg = null;
String json;
ListView theListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swipeContainer = (SwipeRefreshLayout) findViewById(R.id.swipeContainer);
// Setup refresh listener which triggers new data loading
swipeContainer.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
// Your code to refresh the list here.
// Make sure you call swipeContainer.setRefreshing(false) when
// once the network request has completed successfully.
Log.i("refresh","refreshing");
new DownloadJSON().execute();
}
});
ViewGroup vg = (ViewGroup) findViewById(R.id.mainlayoutarea);
ViewGroup.inflate(TimelineActivity.this, R.layout.city_list, vg);
setContentView(R.layout.city_list);
theListView = (ListView) findViewById(R.id.cityList);
theListView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
boolean enable = false;
if(theListView != null && theListView.getChildCount() > 0){
// check if the first item of the list is visible
boolean firstItemVisible = theListView.getFirstVisiblePosition() == 0;
// check if the top of the first item is visible
boolean topOfFirstItemVisible = theListView.getChildAt(0).getTop() == 0;
// enabling or disabling the refresh layout
enable = firstItemVisible && topOfFirstItemVisible;
}
swipeContainer.setEnabled(enable);
}
});
swipeContainer.setColorSchemeResources(android.R.color.holo_blue_light,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light);
new DownloadJSON().execute();
}
하면, 코드 조각을하시기 바랍니다 제공 할 수있다 (오타 확인) : ListView가의 경우
편집을 반환하기에 충분해야 하는가? 이 방법을 구현하는 방법을 잘 모르겠습니다. –
나는 그것을했다. 보세요 – Blackbelt