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响应发送到ListViewTry链接。它将解析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_解析我应该如何设置值