Php RecyclerView未加载数据

Php RecyclerView未加载数据,php,android,android-recyclerview,Php,Android,Android Recyclerview,我正在尝试用来自php的数据加载我的recyclerview。但是由于一些未知的原因,它没有加载任何数据。我已经在其他活动中使用了相同的代码,它可以很好地工作,但是对于这个活动,它只是保持空白。我已经测试了我的php文件,它运行良好 以下是我的活动代码: public class Match_scoring extends AppCompatActivity implements TeamAdapter.onItemClickListener { public static Strin

我正在尝试用来自php的数据加载我的recyclerview。但是由于一些未知的原因,它没有加载任何数据。我已经在其他活动中使用了相同的代码,它可以很好地工作,但是对于这个活动,它只是保持空白。我已经测试了我的php文件,它运行良好

以下是我的活动代码:

public class Match_scoring extends AppCompatActivity implements TeamAdapter.onItemClickListener {

    public static String URL_data;
    public static String p_id;
    public static String p_name;

    TeamAdapter adapter;
    EditText editText;
    List<TeamItems> list_items;
    RecyclerView recyclerView;
    Button subs;

    TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_match_scoring);

        URL_data = "http://prasaurus.com/trial_db_php/tbl_show_201_0_data.php";

        tv = (TextView)findViewById(R.id.url);
        tv.setText(URL_data);

        editText = (EditText)findViewById(R.id.mSearch_match);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                filter(s.toString());
            }
        });

        recyclerView = (RecyclerView)findViewById(R.id.total_players_recyclerView);

        recyclerView.setHasFixedSize(true);

        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        list_items = new ArrayList<>();

        adapter = new TeamAdapter(list_items,getApplicationContext());

        recyclerView.setAdapter(adapter);

        adapter.setOnItemClickListener(Match_scoring.this);

        loadRecyclerViewData();

    }

    private void loadRecyclerViewData() {

        StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_data, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                try {
                    JSONObject jsonObject = new JSONObject(response);
                    int success = jsonObject.getInt("success");
                    if (success == 1) {
                        JSONArray jsonArray = jsonObject.getJSONArray("Data");

                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject jsonObject_current = jsonArray.getJSONObject(i);
                            TeamItems teamItems = new TeamItems(
                                    jsonObject_current.getString("player_id"),
                                    jsonObject_current.getString("player_name"),
                                    jsonObject_current.getString("player_dob"),
                                    jsonObject_current.getString("position"),
                                    jsonObject_current.getString("team_id")
                            );
                            list_items.add(teamItems);
                        } adapter.notifyDataSetChanged();
                    } else {
                        Toast.makeText(getApplicationContext(), "Please try again later.", Toast.LENGTH_LONG).show();
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG);
            }
        });

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);

    }

    private void filter(String text){
        ArrayList<TeamItems> filteredList = new ArrayList<>();

        for (TeamItems item : list_items){
            if(item.getPlayer_name().toLowerCase().contains(text.toLowerCase())){
                filteredList.add(item);
            }
        }
        adapter.filterList(filteredList);
    }

    @Override
    public void onItemClick(int position) {
        TeamItems clickedItem = list_items.get(position);

        Intent details = new Intent(Match_scoring.this,ScoringDetails.class);
        p_id = clickedItem.getPlayer_id();
        p_name = clickedItem.getPlayer_name();

        startActivity(details);


    }
}
下面是我的php脚本:

<?php
$servername = "prasaurus.com";
$username = "prasauru_fand";
$password = "[DB-PASSWORD]";
$dbname = "prasauru_trial_db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$pair_id=$_POST['pair_id'];
$fixture=$_POST['fixture'];

$response = array();

$query = "select * from tbl_201_0_match_details";



$result = mysqli_query($conn, $query);

if(mysqli_num_rows($result) > 0){
    $response['success'] = 1;
    $Data = array();
    while ($row = mysqli_fetch_assoc($result)) {
        array_push($Data , $row);
    }
        $response['Data'] = $Data;
}
else {
    $response['success'] = 0;
    $response['message'] = 'No data';
}

echo json_encode($response);    
mysqli_close($conn);


?>

我曾多次遇到这个问题。适配器上的as NOTIFYDATASETCHETCHANGE不作为indended工作

只需在recyclerview适配器中创建一个简单的函数,并在webcall提供数据时调用一个函数

public void updateDataset(List<Model> updatedData){
yourListWhichInflateData=updatedData;
notifyDatasetChanged();
}

只要数据在活动中可用或已更新,就使用适配器实例调用上述函数。

@mehul没有错误,我的回收器视图只是空白。“活动”已加载,但“回收服务”中没有项目检查我的更新答案。
public void updateDataset(List<Model> updatedData){
yourListWhichInflateData=updatedData;
notifyDatasetChanged();
}