将数据从Mysql检索到android不会';不出现
我想在我的应用程序中检索从mysql到android的json数据,我认为所有步骤都可以,但没有结果 我从另一个活动传递了将数据从Mysql检索到android不会';不出现,android,json,Android,Json,我想在我的应用程序中检索从mysql到android的json数据,我认为所有步骤都可以,但没有结果 我从另一个活动传递了passingitem public class SingleNewsDetails extends Activity { TextView newsdetails; ImageView newspic; TextView newsaddreess; int passingitem; RequestQueue requestQueu
passingitem
public class SingleNewsDetails extends Activity {
TextView newsdetails;
ImageView newspic;
TextView newsaddreess;
int passingitem;
RequestQueue requestQueue;
String url;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.singlenewsdetails);
newsdetails = (TextView) findViewById(R.id.news_details_text);
newspic = (ImageView) findViewById(R.id.newspic);
newsaddreess = (TextView) findViewById(R.id.news_address_text);
Intent intent = getIntent();
passingitem = intent.getIntExtra("news_id",0);
getData();
}
public void getData() {
url = Config.DATA_URL + String.valueOf(passingitem);
Toast.makeText(this,url,Toast.LENGTH_SHORT).show();
requestQueue = Volley.newRequestQueue(this);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("allstudents");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject respons = jsonArray.getJSONObject(i);
// String id = respons.getString("id");
String address = respons.getString("address");
// String image = respons.getString("image");
String desc = respons.getString("desc");
newsaddreess.setText(address);
newsdetails.setText(desc);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("VOLLEY", "ERROR");
}
}
);
requestQueue.add(jsonObjectRequest);
}
}
传递项是从此活动传递的
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l)
{
Intent intent = new Intent(this,SingleNewsDetails.class);
String selecteditem = String.valueOf(listView.getItemIdAtPosition(position));
Toast.makeText(NewsFragmentActivity.this,selecteditem,Toast.LENGTH_LONG).show();
intent.putExtra("news_id",position);
startActivity(intent);
}
我尝试toast json url,它显示在屏幕上,但没有显示任何数据。怎么了?抱歉,英语不好您的url变量正在活动实例化中分配,而未设置passingItem这意味着您可能一直在使用此url: 在响应中返回空值: {“所有学生”:[{“desc”:null,“image”:null}]} 我建议您将
getData()
方法修改为类似getData(字符串url)
然后像这样称呼它:
getData(Config.DATA_URL+String.valueOf(passingitem))代码>不起作用。。url id仍然为0。。我认为将值设置为passing item时出现问题。显示了选定的项,但url仍然显示id=0可能是在两个活动之间传递int时出现问题吗?在第一个活动中,这是真的,但第二个活动可能不会通过。。我认为我的代码是正确的,但我不知道哪里是错误的,我现在修复了它,它显示传递项,但没有显示任何东西。您的API响应不包含地址字段,只有desc
和image
尝试在json.get(“key”)之前使用类似json.has(“key”)
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l)
{
Intent intent = new Intent(this,SingleNewsDetails.class);
String selecteditem = String.valueOf(listView.getItemIdAtPosition(position));
Toast.makeText(NewsFragmentActivity.this,selecteditem,Toast.LENGTH_LONG).show();
intent.putExtra("news_id",position);
startActivity(intent);
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:id="@+id/news_address_text"
android:layout_height="25dp"
android:textSize="20dp"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/single_news_image"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/news_details_text"
android:layout_gravity="right"
android:textSize="16dp"/>
</LinearLayout>
W/System.err: org.json.JSONException: No value for address
W/System.err: at org.json.JSONObject.get(JSONObject.java:355)
W/System.err: at org.json.JSONObject.getString(JSONObject.java:515)
W/System.err: at com.example.amr.fujeraapp.News.SingleNewsDetails$1.onResponse(SingleNewsDetails.java:64)
W/System.err: at com.example.amr.fujeraapp.News.SingleNewsDetails$1.onResponse(SingleNewsDetails.java:56)
W/System.err: at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:72)
W/System.err: at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
W/System.err: at android.os.Handler.handleCallback(Handler.java:808)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:103)
W/System.err: at android.os.Looper.loop(Looper.java:193)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5333)
W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
W/System.err: at dalvik.system.NativeStart.main(Native Method)