Android 你不在碎片中工作吗?

Android 你不在碎片中工作吗?,android,android-fragments,swiperefreshlayout,Android,Android Fragments,Swiperefreshlayout,斯威士兰没有在碎片中工作。 我的xml代码: <?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pagerefresh" android:layout_width="match_parent" android:l

斯威士兰没有在碎片中工作。 我的xml代码:

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pagerefresh"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView
    android:id="@+id/progress"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="vertical" /></android.support.v4.widget.SwipeRefreshLayout>
getProgressData()函数&它对您更有帮助

private void getProgressData(){
    String token = SharedPreferencesManager.readPreferenceString("token", "D/N");
    JSONObject progressData = new JSONObject();
    try{
        progressData.put("token", token);
        JsonObjectRequest progressObject = new JsonObjectRequest(1, Common.OrderDetails + "progress", progressData, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject progressResponse) {
                Log.d("Responseprogress", progressResponse.toString());
                try {
                    int status = progressResponse.getInt("status");
                    if(status == 1) {
                        progressOrderProgress(progressResponse);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
                Log.d("Response", "PROGRESS ERROR");
            }
        });
        progressObject.setShouldCache(false);
        ServiceBellApp.getInstance().addToRequestQueue(progressObject);
    }
    catch (JSONException localJSONException){
        localJSONException.printStackTrace();
        return;
    }
}

private void progressOrderProgress(JSONObject progressResponse) throws JSONException {
    JSONArray result = progressResponse.getJSONArray("orderdata");
    for(int i=0; i<result.length(); i++){
        OrderList orderListModule = new OrderList();
        JSONObject orderData = null;
        try {
            orderData = result.getJSONObject(i);
            orderListModule.setPackage_name(orderData.getString("name"));
            orderListModule.setOrderdate(orderData.getString("date"));
            orderListModule.setServicedate(orderData.getString("service"));
            orderListModule.setServicetime(orderData.getString("time"));
            orderListModule.setOrderid(orderData.getString("id"));
            orderListModule.setOrdstatus(orderData.getString("status"));
            orderListModule.setOrderamount(orderData.getInt("ramount"));
        }catch (JSONException e) {
            e.printStackTrace();
        }
        orderLists.add(orderListModule);
    }
    swipeRefreshLayout.setRefreshing(false);
    adapter.notifyDataSetChanged();
}
private void getProgressData(){
String token=SharedReferencesManager.readPreferenceString(“标记”、“D/N”);
JSONObject progressData=新的JSONObject();
试一试{
progressData.put(“令牌”,令牌);
JsonObjectRequest progressObject=新的JsonObjectRequest(1,Common.OrderDetails+“progress”,progressData,new Response.Listener(){
@凌驾
公共void onResponse(JSONObject progressResponse){
Log.d(“Responseprogress”,progressResponse.toString());
试一试{
int status=progressResponse.getInt(“status”);
如果(状态==1){
progressOrderProgress(progressResponse);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
错误。printStackTrace();
Log.d(“响应”、“进度错误”);
}
});
progressObject.setShouldCache(false);
ServiceBellApp.getInstance().addToRequestQueue(progressObject);
}
catch(JSONException localJSONException){
localJSONException.printStackTrace();
返回;
}
}
私有void progressOrderProgress(JSONObject progressResponse)抛出JSONException{
JSONArray result=progressResponse.getJSONArray(“orderdata”);
对于(int i=0;i
mSwipeRefreshLayout=(swiperFreshLayout)view.findViewById(R.id.swiperFresh);
mSwipeRefreshLayout.setOnRefreshListener(新的SwipeRefreshLayout.OnRefreshListener()){
@凌驾
公共void onRefresh(){
mArrayList=newarraylist();
mSwipeRefreshLayout.post(新的Runnable(){
@凌驾
公开募捐{
mSwipeLayout=true;
mSwipeRefreshLayout.setRefreshing(true);
getNear();
}
}
);
}
});
public void getNear(){
latLongSevenKms();
mSwipeRefreshLayout.setRefreshing(true);
}

使用:

LinearLayoutManager mm=新的LinearLayoutManager(此,LinearLayoutManager.VERTICAL,false);
recyclerView.setLayoutManager(mm);

了解这个基本流程在代码中看到了什么您已经做了所有的事情,只遗漏了一件事

您请求获取新数据,然后将其添加到
orderlist.add(orderListModule);
中,然后调用
adapter.notifyDataSetChanged();
这里是问题您应该使用新数据集调用这里的set adatpter,而不是
notifyDataSetChanged()

@覆盖
创建时的公共void(Bundle savedInstanceState){
...
setAdapter();
mSwipeRefreshLayout.setOnRefreshListener(新的SwipeRefreshLayout.OnRefreshListener()){
@凌驾
公共void onRefresh(){
刷新内容();
...
}
//伪造网络操作的延迟响应
//这只是为了演示,不是真正的代码!
私有无效刷新内容(){
new Handler().postDelayed(new Runnable()){
@凌驾
公开募捐{
mAdapter=newarrayadapter(MainActivity.this,android.R.layout.simple_list_item_1,getnewweets());
mListView.setAdapter(mAdapter);
mSwipeRefreshLayout.setRefresh(false);
});
}
//得到新的猫名。
//通常这是使用异步任务调用Web服务,
//或数据库操作
私有列表getNewCatNames(){
List newCatNames=new ArrayList();
对于(int i=0;i
更新:在您的代码中

private void progressOrderProgress(JSONObject progressResponse) throws JSONException {
    JSONArray result = progressResponse.getJSONArray("orderdata");
    for(int i=0; i<result.length(); i++){
        OrderList orderListModule = new OrderList();
        JSONObject orderData = null;
        try {
            orderData = result.getJSONObject(i);
            orderListModule.setPackage_name(orderData.getString("name"));
            orderListModule.setOrderdate(orderData.getString("date"));
            orderListModule.setServicedate(orderData.getString("service"));
            orderListModule.setServicetime(orderData.getString("time"));
            orderListModule.setOrderid(orderData.getString("id"));
            orderListModule.setOrdstatus(orderData.getString("status"));
            orderListModule.setOrderamount(orderData.getInt("ramount"));
        }catch (JSONException e) {
            e.printStackTrace();
        }
        orderLists.add(orderListModule);
    }
    swipeRefreshLayout.setRefreshing(false);
    adapter = new ProgressOrderListAdapter(orderLists, getActivity());
    recyclerView.setAdapter(adapter);
}
private void progressOrderProgress(JSONObject progressResponse)抛出JSONException{
JSONArray result=progressResponse.getJSONArray(“orderdata”);

对于(int i=0;ishow
getProgressData()
函数这是我的JSONObject请求函数显示您如何设置适配器……请显示您的完整代码。很好,我还需要一件事listview.setadapter?不工作。我将Log.d(“刷新”,“工作”);放在mSwipeRefreshLayout.post(新的Runnable(){}no log DispalyId是否将布局设置为RecyclerView?将LayoutManager添加到Recycler视图中。它已在我的代码RecyclerView.setLayoutManager(新的LinearLayoutManager(getActivity())中可用;您正在使用Volley,是否初始化了RequestQueue?我已添加了RecyclerView.setAdapter(adapter);在onCreateView()functionadapter=新适配器(…);recyclerView.setAdapter(适配器);获取新值后,我的值显示正确,但SwiperFresh仅不起作用
@Override
  public void onCreate(Bundle savedInstanceState) {
  ...
    listView.setAdapter();
    mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
      @Override
      public void onRefresh() {
            refreshContent();
          ...
  }

  // fake a network operation's delayed response 
  // this is just for demonstration, not real code!
  private void refreshContent(){ 
  new Handler().postDelayed(new Runnable() {
          @Override
          public void run() {
    mAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, getNewTweets());
    mListView.setAdapter(mAdapter);
    mSwipeRefreshLayout.setRefreshing(false);
  });
  }

  // get new cat names.
  // Normally this would be a call to a webservice using async task,
  // or a database operation

 private List<String> getNewCatNames() {
        List<String> newCatNames = new ArrayList<String>();
        for (int i = 0; i < mCatNames.size(); i++) {
          int randomCatNameIndex = new Random().nextInt(mCatNames.size() - 1);
          newCatNames.add(mCatNames.get(randomCatNameIndex));
        }
        return newCatNames;
    }
private void progressOrderProgress(JSONObject progressResponse) throws JSONException {
    JSONArray result = progressResponse.getJSONArray("orderdata");
    for(int i=0; i<result.length(); i++){
        OrderList orderListModule = new OrderList();
        JSONObject orderData = null;
        try {
            orderData = result.getJSONObject(i);
            orderListModule.setPackage_name(orderData.getString("name"));
            orderListModule.setOrderdate(orderData.getString("date"));
            orderListModule.setServicedate(orderData.getString("service"));
            orderListModule.setServicetime(orderData.getString("time"));
            orderListModule.setOrderid(orderData.getString("id"));
            orderListModule.setOrdstatus(orderData.getString("status"));
            orderListModule.setOrderamount(orderData.getInt("ramount"));
        }catch (JSONException e) {
            e.printStackTrace();
        }
        orderLists.add(orderListModule);
    }
    swipeRefreshLayout.setRefreshing(false);
    adapter = new ProgressOrderListAdapter(orderLists, getActivity());
    recyclerView.setAdapter(adapter);
}