Android 如何将json响应数据发送到自定义ListView?JSON响应是字典吗?

Android 如何将json响应数据发送到自定义ListView?JSON响应是字典吗?,android,json,listview,Android,Json,Listview,我的活动: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mediator_id= getIntent().getStringExtra("mediator_id"); mediator_name= getIntent().getStringExtra("mediator_name"); new Thread(transaction).st

我的活动:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mediator_id= getIntent().getStringExtra("mediator_id");
    mediator_name= getIntent().getStringExtra("mediator_name");
    new Thread(transaction).start();
    setContentView(R.layout.transaction_log);

    ImageView back=(ImageView) findViewById(R.id.imageView1);
    back.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            startActivity(new Intent(Log.this,Mediator.class));

        }
    });
}

public Runnable transaction = new Runnable() {
    public void run() {

        try {
            if (mediator_id.equals("") || mediator_name.equals("")) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Log.d("1", "Improper");
                        // TODO Auto-generated method stub
                    }
                });
            } else {
                HttpClient client = new DefaultHttpClient();
                HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
                HttpResponse response;
                JSONObject json = new JSONObject();
                HttpPost post = new HttpPost(Configure.APP_BASE_URI_Mediator_TRANSACTIONS);
                post.addHeader("Content-Type", "application/json");
                json.put("no", mediator_id);

                post.setEntity(new StringEntity(json.toString()));

                response = client.execute(post);

                final int status = response.getStatusLine().getStatusCode();
                if (status != HttpStatus.SC_OK) {
                    runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            Toast.makeText(Log.this,
                                    "Unable to connectggggggggg. Please try again.",
                                    Toast.LENGTH_LONG).show();

                        }
                    });

                } else {
                    InputStream in = response.getEntity().getContent(); //Get the data in the entity
                    String a = convertStreamToString(in);
                    JSONObject jObject = new JSONObject(a);
                    int result = jObject.getInt("status");
                    System.out.print("result+++++++++" + result);
                    Log.d("Result", jObject.getString("message"));
                    final String transObj = jObject.getString("message");

                    if (result == 1) {
                        runOnUiThread(new Runnable() {

                            @Override
                            public void run() {
                                // TODO Auto-generated method stub
                                Intent intent = new Intent(Log.this, Mediator.class);
                                intent.putExtra("mediator_id", mediator_id);
                                intent.putExtra("mediator_name", mediator_name);
                                startActivity(intent);
                                Toast.makeText(Log.this, " Login Successful" + transObj, Toast.LENGTH_LONG).show();
                            }
                        });

                        Intent intent = new Intent(TransactionLog.this, TransactionLog.class);
                        startActivity(intent);
                    } else if (result == 0) {
                        runOnUiThread(new Runnable() {

                            @Override
                            public void run() {
                                Intent intent = new Intent(TransactionLog.this, Operator_Transactions.class);
                                intent.putExtra("mediator_id", mediator_id);
                                intent.putExtra("mediator_name", mediator_name);
                                startActivity(intent);
                                // TODO Auto-generated method stub
                                Toast.makeText(Log.this, "login details are wrong", Toast.LENGTH_LONG).show();
                            }
                        });
                    }
                }
            }
        } catch (final Exception e) {
            //                Toast.makeText( Log.this, "login details are wrong"+e.toString(),Toast.LENGTH_LONG).show();
            Log.d("error", "+++++++" + e.toString());
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    Toast.makeText(Log.this,
                            "Unable to connect. Please try again.************** " + e.toString(),
                            Toast.LENGTH_LONG).show();

                }
            });
        }
    }
};
我得到了如下JSON响应:

D结果(3928): {“19”:{“发送者id”:“1210”,“m”:“200”,“调解者”:“121030910807”,“接收者”:“508505”,“id”:“21”,“发送者编号”:“508505”,“备注”:“NULL”,“发送者编号”:“12”,“类型”:“书籍”,“日期时间”:“2014-08-22 19:45:06“},”22:{“发送者id:“121030910805”,“m:“50.0”,“调解者:“121030910807”,“接收者:“508505”,“id:“24”,“发送者编号:“508505”,“备注:“空”,“发送者编号:“121030910805”,“类型:“书籍”,“日期/时间”:“2014-08-23” 11:22:17“},“17”:

如何将此数据发送到ListView

我的自定义列表视图:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:id="@+id/relMain"
    android:background="@drawable/roundedcorner1" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="14dp"
        android:layout_marginTop="5dp"
        android:text="DateTime                        :" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:text="Type: " />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_below="@+id/textView3"
        android:text=" Number            : " />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView4"
        android:layout_below="@+id/textView4"
        android:text="Amount:" />

    <TextView
        android:id="@+id/transaction_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView3"
        android:layout_marginLeft="39dp"
        android:layout_toRightOf="@+id/textView3"
        android:text="15-08-2014/12:30:00" />

    <TextView
        android:id="@+id/transaction_type"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/transaction_date"
        android:layout_below="@+id/transaction_date"
        android:text="Withdrawal" />

    <TextView
        android:id="@+id/number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView5"
        android:layout_alignLeft="@+id/transaction_type"
        android:text="234561843901" />

    <TextView
        android:id="@+id/amount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView5"
        android:layout_alignBottom="@+id/textView5"
        android:layout_alignLeft="@+id/number"
        android:text="500.00" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="450dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView5"
        android:layout_marginTop="14dp"
        android:src="@drawable/line1" />

</RelativeLayout>

事务适配器的代码:

public class TransactionLog_Adapter extends ArrayAdapter<Item> {
    Context context;
    int layoutResourceId;

    ArrayList<Item> data = new ArrayList<Item>();

    public TransactionLog_Adapter(Context context, int layoutResourceId,
            ArrayList<Item> data) {
        super(context, layoutResourceId, data);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.data = data;
    }

    @SuppressLint("NewApi")
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;

        Item myImage = data.get(position);
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(parent.getLayoutParams());

        for (int j = 0; j < myImage.getName().length; j++) {

            row = inflater.inflate(layoutResourceId, parent, false);

            RelativeLayout linearMain = (RelativeLayout) row
                    .findViewById(R.id.relMain);
            TextView transaction_date = (TextView) row.findViewById(R.id.transaction_date);
            //transaction_date.setText(myImage.name[j]);

            TextView transaction_type = (TextView) row.findViewById(R.id.transaction_type);
            //transaction_type.setText(myImage.name[j]);

            TextView aadhar_number = (TextView) row.findViewById(R.id.number);
            //aadhar_number.setText(myImage.name[j]);

            TextView amount = (TextView) row.findViewById(R.id.amount);
            //amount.setText(myImage.name[j]);
        }
        return row;
    }
公共类TransactionLog_适配器扩展了ArrayAdapter{
语境;
国际布局资源;
ArrayList数据=新的ArrayList();
公共事务日志_适配器(上下文上下文,int-layoutResourceId,
ArrayList数据){
超级(上下文、布局资源ID、数据);
this.layoutResourceId=layoutResourceId;
this.context=上下文;
这个数据=数据;
}
@SuppressLint(“新API”)
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
Item myImage=data.get(位置);
LayoutInflater充气器=((活动)上下文)。getLayoutInflater();
RelativeLayout.LayoutParams lp=新的RelativeLayout.LayoutParams(parent.getLayoutParams());
对于(int j=0;j
您能告诉我如何将JSON响应发送到ListView

Try链接。它将解析JSON以创建客户端源文件来建模JSON数据结构。然后使用Gson解析更简单的响应


Gson集成教程

Google。基本上,您需要创建一个DAO类。在您的情况下,您要传递Item的arraylist,因此创建一个名为Item的类,并在JSON响应中放置详细信息的getter和setter。解析响应,将该数据存储在Item类的object中,然后将这些对象添加到arraylist中。最后传递arraylist到listview的适配器并覆盖
getView
url不会显示任何数据,除非我发布了先前意图中的数字……在这种情况下,我如何解析json数据?json.put(“否”,mediator\u id);我需要输入这些数据,然后得到响应。您可以告诉我如何手动创建模型类……我对json不熟悉,所以请帮助公共类json_解析{私有字符串发送者id;私有字符串m;私有数字中介者;私有数字id;}我已经创建了一个类json_解析我应该如何设置值