Android Listview中的Json数据
我是android新手。我在这一点上被卡住了。我只想按位置将listview onclick事件的数据获取到另一个页面。这是我的密码 我得到的项目包含以下行中的错误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
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());