java RecyclerView数据为空,以片段形式显示textview
我的json数据为空,以便在textview中可见并隐藏recyclerview
我的xml代码recyclerview和textview:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:orientation="vertical"
安卓:padding="@dimen/common_padding"
>
<安卓.support.v7.widget.RecyclerView
安卓:id="@+id/pending"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:scrollbars="vertical"
/>
<TextView
安卓:id="@+id/pendingnullorder"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:text="Current no orders available"
安卓:layout_centerVertical="true"
安卓:layout_centerHorizontal="true"
安卓:textSize="@dimen/order_list_view_font_size"
安卓:visibility="gone"
/>
我的java代码显示textview&;在此处隐藏回收视图:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View drawer = inflater.inflate(R.layout.fragment_pending, container, false);
pendingnullorder = (TextView) drawer.findViewById(R.id.pendingnullorder);
recyclerView = (RecyclerView) drawer.findViewById(R.id.pending);
progressBar = (ProgressBar) drawer.findViewById(R.id.progressBar);
recyclerView.setVisibility(View.GONE);
progressBar.setVisibility(ProgressBar.VISIBLE);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
orderLists = new ArrayList<>();
getProgressData();
adapter = new OrderListAdapter(orderLists, getActivity());
recyclerView.setAdapter(adapter);
return recyclerView;
}
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();}
任何人都可以帮助我。我是安卓代码的新手
# 1 楼答案
在XML中,您已经将}的可见性设置为}的可见性设置为
TextView
{"gone"
,并且在onCreateView
方法中,您还将RecyclerView
{View.GONE
。你似乎看不到你的观点在方法
getProgressData
(或getPendingData
)中,应根据适配器的大小更改此视图之一的可见性(如果没有元素:pendingnullorder.setVisibility(View.VISIBLE);
,否则:recyclerView.setVisibility(View.VISIBLE);
),并更新onResponse
方法上的可见性[编辑]
下面是一个您可以做的示例:
# 2 楼答案
其次,我们可以优化显示数据的方式,以便进行RecycleView。 除去
adapter = new OrderListAdapter(orderLists, getActivity());
recyclerView.setAdapter(adapter);
在
onCreateView
方法中。在progressOrderProgress
方法中,请执行以下操作希望它能解决你的问题