Ich praktiziere Umsetzung recyclerView
(mein erstes Mal), auf Fragments
, und ich möchte diese Daten von meinem Server (phpMyAdmin) abrufen. Ich habe einen kleinen Hintergrund mit PHP und MySQL. Alles, was ich will, ist, meine Daten in einer sehr einfachen Weise zu holen und meine Daten in einem cardView
- recyclerView
anzuzeigen. Wie ich meinen Java-Code überprüfe, scheint es gerade jetzt (nach der Korrektur).Parse Fehler abgerufen JsonArrayRequest mit PHP zu RecyclerView On Fragments Volley
Als ich meine App debuggen, habe ich festgestellt, dass es nicht zu meinem onResponse
gehen wird, stattdessen geht es zu ErrorResponse
. Wie analysiere ich das richtig?
Hier ist mein Fragment: OrganizationAboutFragment .JAVA
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
recyclerView = (RecyclerView) inflater.inflate(
R.layout.recycler_view, container, false);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setHasFixedSize(true);
orgListAdapter = new OrgListAdapter(organizationDataList);
recyclerView.setAdapter(orgListAdapter);
//GET DATA REQUEST
parseJSONData();
return recyclerView;
}
public void parseJSONData(){
RequestQueue requestQueue = Volley.newRequestQueue(getContext());
JsonArrayRequest jsonArray = new JsonArrayRequest(ServerScripts.PHP_SCRIPT_PATH + ServerScripts.PHP_GET_FEEDS, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
if (response.length() > 0){
try {
organizationDataList.clear();
for (int i = 0; i < response.length(); i++){
JSONObject jsonObject = response.getJSONObject(i);
OrganizationData organizationData = new OrganizationData();
//SQL TABLE NAME
if (!jsonObject.isNull("orgName")){
organizationData.orgName = jsonObject.getString("orgName");
}
if (!jsonObject.isNull("orgDesc")){
organizationData.orgDesc = jsonObject.getString("orgDesc");
}
if (!jsonObject.isNull("orgCategory")){
organizationData.orgCategory = jsonObject.getString("orgCategory");
}
if (!jsonObject.isNull("orgCurrentMembers")){
organizationData.orgCurrentMembers = jsonObject.getInt("orgCurrentMembers");
}
if (!jsonObject.isNull("orgMaxMembers")){
organizationData.orgMaxMembers = jsonObject.getInt("orgMaxMembers");
}
if (!jsonObject.isNull("orgType")){
organizationData.orgType = jsonObject.getString("orgType");
}
//ADD
organizationDataList.add(organizationData);
}
//NOTIFY
orgListAdapter.notifyDataSetChanged();
}catch (Exception e){
e.printStackTrace();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(jsonArray);
Mein Adapter: OrgListAdapter.java
public class OrgListAdapter extends RecyclerView.Adapter<OrgListAdapter.OrgViewHolder>{
private List<OrganizationData> mOrganizationData;
public OrgListAdapter(List<OrganizationData> mOrganizationData){
this.mOrganizationData = mOrganizationData;
}
@Override
public OrgViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_cardview_flat_organizations,parent,false);
OrgViewHolder myOrgViewHolder = new OrgViewHolder(view);
return myOrgViewHolder;
}
@Override
public void onBindViewHolder(OrgViewHolder holder, int position) {
//ORG MODELS PASS TO CARD VIEW - HOLDER
holder.appCompatTextViewName.setText(mOrganizationData.get(position).getOrgName());
holder.appCompatTextViewCategory.setText(mOrganizationData.get(position).getOrgCategory());
holder.appCompatTextViewDesc.setText(mOrganizationData.get(position).getOrgDesc());
holder.appCompatTextViewJoinMembers.setText(mOrganizationData.get(position).getOrgCurrentMembers());
holder.appCompatTextViewMaxMembers.setText(mOrganizationData.get(position).getOrgMaxMembers());
}
@Override
public int getItemCount() {
if (mOrganizationData != null){
return mOrganizationData.size();
}
return 0;
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
public static class OrgViewHolder extends RecyclerView.ViewHolder{
CardView cardViewOrg;
AppCompatTextView appCompatTextViewName;
AppCompatTextView appCompatTextViewDesc;
AppCompatTextView appCompatTextViewJoinMembers;
AppCompatTextView appCompatTextViewMaxMembers;
AppCompatTextView appCompatTextViewCategory;
AppCompatImageView appCompatImageViewOrgType;
String getDataStoredUniqueId = "";
//Buttons
AppCompatButton appCompatButtonJoin;
AppCompatButton appCompatButtonFollow;
AppCompatButton appCompatButtonReadMore;
public OrgViewHolder(View getView){
super(getView);
cardViewOrg = (CardView) getView.findViewById(R.id.card_view_org);
appCompatTextViewName = (AppCompatTextView) getView.findViewById(R.id.textViewOrgName);
appCompatTextViewCategory = (AppCompatTextView) getView.findViewById(R.id.textViewCategory);
appCompatTextViewDesc = (AppCompatTextView) getView.findViewById(R.id.textViewOrgShortDesc);
appCompatTextViewJoinMembers = (AppCompatTextView) getView.findViewById(R.id.currentMembers);
appCompatTextViewMaxMembers = (AppCompatTextView) getView.findViewById(R.id.maxMembers);
appCompatImageViewOrgType = (AppCompatImageView) getView.findViewById(R.id.orgTypeIndicator);
//Buttons
appCompatButtonJoin = (AppCompatButton) getView.findViewById(R.id.imageButtonJoined);
appCompatButtonFollow = (AppCompatButton) getView.findViewById(R.id.imageButtonFollow);
appCompatButtonReadMore = (AppCompatButton) getView.findViewById(R.id.buttonMoreOrg);
}
}
Mein PHP-Code: orgList.php
<?php
//if($_SERVER['REQUEST_METHOD'] == ''){
require('dbConnect.php');
$SQLi_ORG_FEEDS = "SELECT organizationName,organizationDescription,organizationCategory,
organizationCurrentMembers,organizationMaxMembersNo,organizationType FROM org_information";
$query = mysqli_query($dbConnect,$SQLi_ORG_FEEDS) or die("Error".mysqli_error($dbConnect));
$checkRow = mysqli_num_rows($query);
$response = array();
if($checkRow > 0){
while ($getRecord = mysqli_fetch_array($query)) {
$response["organizationName"] = $getRecord;
$response["organizationType"] = $getRecord;
$response["organizationDescription"] = $getRecord;
$response["organizationCategory"] = $getRecord;
$response["organizationCurrentMembers"] = $getRecord;
$response["organizationMaxMembersNo"] = $getRecord;
}
echo json_encode($response);
}
//}
auch nicht '' organizationDataList –
@ ρяσѕρєя K ja Recht – Nisarg