Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
android将json对象从传递到listview_Android_Json_Listview - Fatal编程技术网

android将json对象从传递到listview

android将json对象从传递到listview,android,json,listview,Android,Json,Listview,我是新编程人员,因此我请求熟悉JSONArray、ArrayAdapters和ListView的任何人提供一些帮助。在我的情况下,我只需要有人给出一个将JSONObject从活动传递到listview的示例 public class WhatsYourQuestion extends Activity implements OnClickListener { EditText et; TextView answer; @Override p

我是新编程人员,因此我请求熟悉JSONArray、ArrayAdapters和ListView的任何人提供一些帮助。在我的情况下,我只需要有人给出一个将JSONObject从活动传递到listview的示例

 public class WhatsYourQuestion extends Activity implements OnClickListener {


    EditText et; 

    TextView answer; 





    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(InstanceState);

        setContentView(R.layout.main);



        et = (EditText) findViewById(R.id.editText1);

        Button myButton = (Button) findViewById(R.id.button1);

        myButton.setOnClickListener(new OnClickListener()  {


            @Override

            public void onClick(View v) {
            new asynctask().execute();
            }
     }

       public class asynctask extends AsyncTask<String, String, String>{

           protected void onPreExcute(String q) {
             q = et.getText();
             }

       @Override
       protected String doInBackground(String... params) {
              static InputStream is = null;
              static JSONObject jObj = null;
              static String json = "";
              try{
                 HttpClient client = new DefaultHttpClient();
                 URI website = new URI("http://example" + q.setText +"json");
                 HttpGet request = new HttpGet();
                 request.setURI(website);
                 HttpResponse response = client.execute(request);
                 HttpEntity httpEntity = response.getEntity();
                 is = httpEntity.getContent();           

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }


        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        // return JSON String
        return jObj;

               }

        }


        JSONParser jParser = new JSONParser();


        JSONObject json = jParser.getJSONFromURI(uwebsite);

        try[
           ResultsSet = json.getJSONArray(TAG_RESULTSSET);

           for(int i = 0; i < ResultsSet.length(); i++){
           JSONObject r = ResultsSet.getJSONObject(i);


           String Subject = r.getString(TAG_SUBJECT);
           String NumAnswers = r.getString(TAG_NUMANSWERS);


              }
        } catch (JSONException e) {
            e.printStackTrace();
        }


        protected void OnPostExecute(String results){
        ??????
公共类WhatsYourQuestion扩展活动实现OnClickListener{
编辑文本;
文本视图答案;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(InstanceState);
setContentView(R.layout.main);
et=(EditText)findViewById(R.id.editText1);
按钮myButton=(按钮)findViewById(R.id.button1);
myButton.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
新建asynctask().execute();
}
}
公共类asynctask扩展了asynctask{
受保护的无效onPreExcute(字符串q){
q=et.getText();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
静态InputStream为空;
静态JSONObject jObj=null;
静态字符串json=“”;
试一试{
HttpClient=new DefaultHttpClient();
URI网站=新的URI(“http://example“+q.setText+”json“;
HttpGet请求=新建HttpGet();
setURI(网站);
HttpResponse response=client.execute(请求);
HttpEntity HttpEntity=response.getEntity();
is=httpEntity.getContent();
}捕获(不支持的编码异常e){
e、 printStackTrace();
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
试一试{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(
is,“iso-8859-1”),8);
StringBuilder sb=新的StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
is.close();
json=sb.toString();
}捕获(例外e){
Log.e(“缓冲区错误”,“错误转换结果”+e.toString());
}
试一试{
jObj=新的JSONObject(json);
}捕获(JSONException e){
Log.e(“JSON解析器”,“错误解析数据”+e.toString());
}
//返回JSON字符串
返回jObj;
}
}
JSONParser jParser=新的JSONParser();
JSONObject json=jParser.getJSONFromURI(uwebsite);
试一试[
resultset=json.getJSONArray(TAG_resultset);
对于(int i=0;i

现在,我需要有人给我一个示例,说明如何将我的JSONObject从此活动传递到listview。

您可能需要一个ArrayAdapter或类,从BaseAdapter扩展,然后传递数据(如JSONObject或其他内容)通过adpater的构造函数。这样您就可以将它绑定到您的listview。

本教程对您的问题非常有用。但可能需要在少量代码中进行一些编辑。androidhive.info/2012/05/如何将android与php mysql连接/

我在您的活动中没有看到
listview
。我也没有看到
ArrayAdapter
。您的
listview将做什么
填充?您在
main.xml
中定义了一个吗?并且,主题之外但非常重要的是,不应该
super.onCreate(InstanceState);
super.onCreate(savedInstanceState);
我在main.xml中创建了一个listview,我是否将ArrayAdapter和listview放在onPostExecute下?对不起,这对我来说是新东西。你能告诉我们每个列表项将包含哪些内容吗?每个列表项将包含三个内容。每个列表项都有一个问题,即该问题的主题,最后它将显示该问题的答案数我正在使用Yahoo Answers api这里有一个链接,如果你想查看的话。这很简单。我看到你已经接受了答案。看起来你的问题已经解决了。