Android Listview中的Json数据

Android Listview中的Json数据,android,android-intent,android-listview,Android,Android Intent,Android Listview,我是android新手。我在这一点上被卡住了。我只想按位置将listview onclick事件的数据获取到另一个页面。这是我的密码 我得到的项目包含以下行中的错误 i.putExtra(“testonAray”,listContents[position].toString()) 完整代码如下: package com.example.listviewdemo; import android.app.ListActivity; import android.content.Intent; im

我是android新手。我在这一点上被卡住了。我只想按位置将listview onclick事件的数据获取到另一个页面。这是我的密码

我得到的项目包含以下行中的错误
i.putExtra(“testonAray”,listContents[position].toString())

完整代码如下:

package com.example.listviewdemo;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.example.listviewdemo.CustomHttpClient;

public class MainActivity extends ListActivity {
    TextView txt;
    String returnString;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String name="sandeep";
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();

        // define the parameter
        postParameters.add(new BasicNameValuePair("email",
              name.toString()));



        String response = null;

        // call executeHttpPost method passing necessary parameters 
        try {



   response = CustomHttpClient.executeHttpPost(
          "http://indiaontaxi.com/android/myaccount.php", // your ip address if using localhost server
     //"http://omega.uta.edu/~kmr2464/jsonscript.php",  // in case of a remote server
     postParameters);

   // store the result returned by PHP script that runs MySQL query
   String result = response.toString();  

    //parse json data
   try {
       JSONArray jArray = new JSONArray(result);
       int jArrayLength = jArray.length();
        final ArrayList<String> listContents = new ArrayList<String>(jArrayLength);

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

           JSONObject json_data = jArray.getJSONObject(i);
           listContents.add(json_data.getString("source"));

       }


       setListAdapter(new ArrayAdapter<String>(this,
               android.R.layout.simple_list_item_1, listContents));
       txt = (TextView) findViewById(R.id.txt);

       //myListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ));

   }catch(JSONException e){
       Log.e("log_tag","Error parsin data "+e.toString());
   }    

  }
        catch (Exception e) {
   Log.e("log_tag","Error in http connection!!" + e.toString());     
  }

       /* setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, items));
        txt = (TextView) findViewById(R.id.txt);
*/
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);

        // txt.setText(items[position]);

        // Try to send the items[position] in the intent
        Intent i = new Intent(this, SecondActivity.class);
        i.putExtra("testonAray",listContents[position].toString());
        startActivity(i);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
package com.example.listviewdemo;
导入android.app.ListActivity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.Menu;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入org.apache.http.NameValuePair;
导入org.apache.http.message.BasicNameValuePair;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入com.example.listviewdemo.CustomHttpClient;
公共类MainActivity扩展了ListActivity{
文本视图;
字符串返回字符串;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String name=“sandeep”;
ArrayList后参数=新的ArrayList();
//定义参数
添加(新的BasicNameValuePair(“电子邮件”),
name.toString());
字符串响应=null;
//调用executehttpost方法传递必要的参数
试一试{
响应=CustomHttpClient.executeHttpPost(
"http://indiaontaxi.com/android/myaccount.php“,//如果使用localhost server,则为您的ip地址
//"http://omega.uta.edu/~kmr2464/jsonscript.php“,//如果是远程服务器
后参数);
//存储运行MySQL查询的PHP脚本返回的结果
字符串结果=response.toString();
//解析json数据
试一试{
JSONArray jArray=新JSONArray(结果);
int jArrayLength=jArray.length();
最终ArrayList listContents=新ArrayList(jArrayLength);

对于Android 3.0及以上版本中的(int i=0;i),您需要独立于UI线程执行所有基于网络的操作。这是一个异步类。这是我几天前发表的一篇类似文章;看看如何对URL中的JSON进行异步调用更改代码

Intent i = new Intent(this, SecondActivity.class);
        i.putExtra("testonAray",listContents[position].toString());


NetworkOnMainThreadException
请使用google hot在AsyncTask中创建httoCalls。请提供本教程的链接
Intent i = new Intent(this, SecondActivity.class);
        i.putExtra("testonAray",listContents[position].toString());
Intent i = new Intent(MainActivity.this, SecondActivity.class);
        i.putExtra("testonAray",listContents[position].toString());