Android 回收器视图项目中没有数据
我在Android 回收器视图项目中没有数据,android,json,android-volley,android-json,Android,Json,Android Volley,Android Json,我在RecyclerView中使用截取库进行JSON解析,从服务器获取数据,但ProgressBar继续运行,没有数据 当我从其他活动发送数据时,检查php脚本是否得到更新,我的php脚本是否正常 public class LiveFeeds extends AppCompatActivity { List<DataAdapter> DataAdapterClassList; RecyclerView recyclerView; RecyclerView.LayoutManag
RecyclerView
中使用截取库进行JSON解析,从服务器获取数据,但ProgressBar
继续运行,没有数据
当我从其他活动发送数据时,检查php脚本是否得到更新,我的php脚本是否正常
public class LiveFeeds extends AppCompatActivity {
List<DataAdapter> DataAdapterClassList;
RecyclerView recyclerView;
RecyclerView.LayoutManager recyclerViewlayoutManager;
RecyclerView.Adapter recyclerViewadapter;
ProgressBar progressBar;
JsonArrayRequest jsonArrayRequest ;
ArrayList<String> SubjectNames;
RequestQueue requestQueue ;
String HTTP_SERVER_URL = "http://ledeveloper.in/bit/getbiddata.php";
View ChildView ;
int RecyclerViewClickedItemPOS ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_live_feeds);
DataAdapterClassList = new ArrayList<>();
SubjectNames = new ArrayList<>();
recyclerView = (RecyclerView) findViewById(R.id.recyclerView1);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
recyclerView.setHasFixedSize(true);
recyclerViewlayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(recyclerViewlayoutManager);
// JSON data web call function call from here.
JSON_WEB_CALL();
//RecyclerView Item click listener code starts from here.
recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
GestureDetector gestureDetector = new GestureDetector(LiveFeeds.this, new GestureDetector.SimpleOnGestureListener() {
@Override public boolean onSingleTapUp(MotionEvent motionEvent) {
return true;
}
});
@Override
public boolean onInterceptTouchEvent(RecyclerView Recyclerview, MotionEvent motionEvent) {
ChildView = Recyclerview.findChildViewUnder(motionEvent.getX(), motionEvent.getY());
if(ChildView != null && gestureDetector.onTouchEvent(motionEvent)) {
//Getting RecyclerView Clicked item value.
RecyclerViewClickedItemPOS = Recyclerview.getChildAdapterPosition(ChildView);
//Printing RecyclerView Clicked item clicked value using Toast Message.
// Toast.makeText(LiveFeeds.this, SubjectNames.get(RecyclerViewClickedItemPOS), Toast.LENGTH_LONG).show();
}
return false;
}
@Override
public void onTouchEvent(RecyclerView Recyclerview, MotionEvent motionEvent) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});
}
public void JSON_WEB_CALL(){
jsonArrayRequest = new JsonArrayRequest(HTTP_SERVER_URL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
JSON_PARSE_DATA_AFTER_WEBCALL(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonArrayRequest);
}
public void JSON_PARSE_DATA_AFTER_WEBCALL(JSONArray array){
for(int i = 0; i<array.length(); i++) {
DataAdapter GetDataAdapter2 = new DataAdapter();
JSONObject json = null;
try {
json = array.getJSONObject(i);
GetDataAdapter2.setId(json.getInt("id"));
GetDataAdapter2.setName(json.getString("username"));
//Adding subject name here to show on click event.
// SubjectNames.add(json.getString("name"));
GetDataAdapter2.setPrice(json.getString("price"));
GetDataAdapter2.setQuantity(json.getString("quan"));
GetDataAdapter2.setTotal(json.getString("total"));
GetDataAdapter2.setTime(json.getString("bidtime"));
GetDataAdapter2.setDate(json.getString("bidbdate"));
}
catch (JSONException e)
{
e.printStackTrace();
}
DataAdapterClassList.add(GetDataAdapter2);
}
progressBar.setVisibility(View.GONE);
recyclerViewadapter = new RecyclerViewAdapter(DataAdapterClassList, this);
recyclerView.setAdapter(recyclerViewadapter);
}
}
这是我的php脚本
$respone = array();
if(isset($_GET['username'])){
$username = $_GET['username'];
$query = "SELECT * FROM bidtable ORDER BY id DESC ";
$result = mysqli_query($conn,$query);
if(mysqli_num_rows($result)>0)
{
while( $row = mysqli_fetch_assoc($result))
{
$product = array();
$product["id"] = $row["id"];
$product["username"] = $row["username"];
$product["price"] = $row["price"];
$product["quan"] = $row["quan"];
$product["total"] = $row["total"];
$product["bidtime"] = $row["bidtime"];
$response["success"] = "true";
$response["product"] = array();
array_push($response["product"], $product);
echo json_encode($response);
}
}
else{
$response["success"] = "false";
$response["message"] = "Something went wrong";
echo json_encode($response);
}
}
else{
$response["success"] = "false";
$response["message"] = "Required data not set.";
echo json_encode($response);
}
?>
您没有在请求中传递username参数。按如下方式在URL中传递用户名参数:
http://ledeveloper.in/bit/getbiddata.php?username=<username>
回收器视图中没有数据我在调用API{“success”:“false”,“message”:“Required Data not set.”时收到此响应。}我已经添加了我的php脚本@kunwar97当您调试它时,是否到达这一行recyclerView.setAdapter(recyclerViewadapter)?没有,所以我建议您首先尝试首次使用它。看看哪里失败了。还要检查logcat窗口中的错误
$respone = array();
if(isset($_GET['username'])){
$username = $_GET['username'];
$query = "SELECT * FROM bidtable ORDER BY id DESC ";
$result = mysqli_query($conn,$query);
if(mysqli_num_rows($result)>0)
{
while( $row = mysqli_fetch_assoc($result))
{
$product = array();
$product["id"] = $row["id"];
$product["username"] = $row["username"];
$product["price"] = $row["price"];
$product["quan"] = $row["quan"];
$product["total"] = $row["total"];
$product["bidtime"] = $row["bidtime"];
$response["success"] = "true";
$response["product"] = array();
array_push($response["product"], $product);
echo json_encode($response);
}
}
else{
$response["success"] = "false";
$response["message"] = "Something went wrong";
echo json_encode($response);
}
}
else{
$response["success"] = "false";
$response["message"] = "Required data not set.";
echo json_encode($response);
}
?>
http://ledeveloper.in/bit/getbiddata.php?username=<username>
progressBar.setVisibility(View.GONE);