Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android在textview上打印json数组输出_Java_Android_Json - Fatal编程技术网

Java Android在textview上打印json数组输出

Java Android在textview上打印json数组输出,java,android,json,Java,Android,Json,我有一个android应用程序,可以解析来自web服务的json数组输出 我用一个java应用程序测试了输出,效果很好。 我的目的是在textview中打印一个输出,但我失败了 类JsonReader public class JsonReader { private static String readAll(Reader rd) throws IOException { StringBuilder sb = new StringBuilder(); int cp; whi

我有一个android应用程序,可以解析来自web服务的json数组输出 我用一个java应用程序测试了输出,效果很好。 我的目的是在textview中打印一个输出,但我失败了

类JsonReader

public class JsonReader 
{
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
         while ((cp = rd.read()) != -1)
         {
         sb.append((char) cp);
                              }
          return sb.toString();
                                      }

      public static JSONArray readJsonFromUrl(String url) throws IOException, JSONException
      {
       InputStream is = new URL(url).openStream();
       try 
       {
       BufferedReader rd = new BufferedReader(new InputStreamReader(is,  Charset.forName("UTF-8")));
       String jsonText = readAll(rd);
        JSONArray json = new JSONArray(jsonText);
        return json;
        }
        finally 
        {
          is.close();
        }
           }

      public JsonReader() throws JSONException, IOException
      {

      }  

      }
主要活动

  public class MainActivity extends Activity {

  @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
final TextView uid = (TextView)findViewById(R.id.editText1);
    try
    {
    JsonReader r = new JsonReader();
    JSONArray json = r.readJsonFromUrl ("http://localhost:8888/derdeery/zaki.php");

 for (int i =1; i < json.length(); ++i)
 {
 JSONObject  jsons =json.getJSONObject(i);

 int service_ID = jsons.getInt("service_ID");
 String Site_comment = jsons.getString("site_comment");
 String Img_Link = jsons.getString("img_link"); 
 uid.setText(Site_comment);

}

    }
catch(Exception e)
       { }}}
公共类MainActivity扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终文本视图uid=(文本视图)findViewById(R.id.editText1);
尝试
{
JsonReader r=新的JsonReader();
JSONArray json=r.readJsonFromUrl(“http://localhost:8888/derdeery/zaki.php");
for(int i=1;i
我的xml文件

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="60dp"
    android:ems="10" />


需要进行以下更改才能使其正常工作:

1.
editText1
EditText
而不是
TextView
。因此,在用于转换的代码中使用与xml文件中相同的视图:

final EditText uid = (EditText)findViewById(R.id.editText1);
2.当前正在UI线程上执行网络操作(API调用),如果网络操作(API调用)花费更多时间,将导致ANR对话框或
NetworkOnMainThreadException

使用的
doInBackground
方法执行网络操作(API调用)和
onPostExecute
使用
doInBackground
方法的结果更新UI。

试试这个

JSONObject json=新的JSONObject(jsonString); JSONArray jArray=json.getJSONArray(“列表”)

System.out.println(“****JARRAY*****”+JARRAY.length());

对于(int i=0;iIs it TextView或EditText?仅说明“我失败了”是不够的。请详细解释您的问题是什么以及您尝试了什么来修复它。它不会给我输出!上面是如何打印json数组值的示例。因此,从中吸取一些想法,并将其应用到您的代码中。这对我很有用。
System.out.println("*****JARRAY*****" + jArray.length());

for(int i=0; i<jArray.length(); i++){
    JSONObject json_data = jArray.getJSONObject(i);

    Log.i("log_tag", "_id" + json_data.getInt("account") +
        ", mall_name" + json_data.getString("name") +
        ", location" + json_data.getString("number") +
        ", telephone" + json_data.getString("url") +
        ",----" + json_data.getString("balance") +
        ",----" + json_data.getString("credit") +
        ",----" + json_data.getString("displayName")
    );
}