【问题标题】:Json data in ListviewListview中的Json数据
【发布时间】:2014-04-02 06:18:16
【问题描述】:

我是安卓新手。我被困在这一点上。我只想按位置将 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;
    }

}

【问题讨论】:

  • NetworkOnMainThreadException 请使用 google hot 在 AsyncTask 中进行 httoCalls
  • 能否提供本教程的链接

标签: android android-intent android-listview


【解决方案1】:
 // Try this code

  i.putExtra("testonAray",listContents[position].toString());

// Replace the line

   i.putExtra("testonAray",listContents.get(position).toString());

【讨论】:

    【解决方案2】:

    在 Android 3.0 及更高版本中,您需要将所有基于网络的操作与 UI 线程分开。即在 Async 类中。这是我几天前发布的类似帖子;看看如何对 URL Trouble with JSON exception - Android 中的 JSON 进行异步调用

    【讨论】:

      【解决方案3】:

      修改代码

      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());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-19
        • 2018-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多