Я пытаюсь отобразить текстовое представление, если recyclerview пусто. Я получаю данные из базы данных и отображаю в recyclerview. но иногда у меня нет данных в базе данных, поэтому я хочу отображать текстовое представление, если нет данных. В течение долгого времени я пробовал ответы на большинство ответов, которые я нашел здесь, но все они не работают со мной. Я не знаю, в чем проблема. Если кто-нибудь знает решение, пожалуйста, помогите мне.
public class ViewCom extends Fragment {
private TextView emptyView;
private List<List_Data> list_data;
private RecyclerView rvcy;
private MyAdapter adapter;
CardView cardView;
private static final String TAG = "ViewCom";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setHasOptionsMenu(true);
View rootView = inflater.inflate(R.layout.fragment_comment, container, false);
cardView=(CardView)rootView.findViewById(R.id.cardView);
emptyView = (TextView) rootView.findViewById(R.id.empty_view);
Intent i = getActivity().getIntent();
final String mid = i.getStringExtra("mid");
rvcy=(RecyclerView)rootView.findViewById(R.id.recyclerview);
rvcy.setHasFixedSize(true);
rvcy.setLayoutManager(new LinearLayoutManager(getActivity().getApplicationContext()));
list_data=new ArrayList<>();
adapter=new MyAdapter(list_data);
getComment(mid);
rvcy.setAdapter(adapter);
return rootView;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
private void getComment(String mid){
final String HI ="http://===========/Sh.php?mid=" + mid ;
StringRequest stringRequest=new StringRequest(Request.Method.GET, HI, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject=new JSONObject(response);
JSONArray array=jsonObject.getJSONArray("data");
for (int i=0; i<array.length(); i++ ) {
JSONObject ob = array.getJSONObject(i);
List_Data listData = new List_Data(ob.getString("comment")
, ob.getString("name"));
list_data.add(listData);
adapter.notifyDataSetChanged();
Log.i(TAG, "test2"+array.toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
RequestQueue requestQueue = Volley.newRequestQueue(getActivity().getApplicationContext());
requestQueue.add(stringRequest);
}
}
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
private List<List_Data>list_data;
public MyAdapter(List<List_Data> list_data) {
this.list_data = list_data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.list_data,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
List_Data listData=list_data.get(position);
holder.txtname.setText(listData.gettext());
holder.txtm.setText(listData.getmid());
}
@Override
public int getItemCount() {
return list_data.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private TextView txtname,txtm,ImageView;
public ViewHolder(View itemView) {
super(itemView);
txtname=(TextView)itemView.findViewById(R.id.txt_name);
txtm=(TextView)itemView.findViewById(R.id.txt_mname);
}
}
}
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.cardview.widget.CardView
android:id="@+id/cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:layout_marginStart="20dp"
android:layout_marginLeft="20dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="20dp"
android:elevation="5dp"
app:cardCornerRadius="@dimen/loginCardRadiuss">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="no_data_available"
android:visibility="gone" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
</androidx.cardview.widget.CardView>