Today I implemented the network request data, parsed and added the data to the ListView. Last week I mentioned that it is not a clue to realize the different functions of clicking the item in the ListView. If you are fortunate enough to be read, I hope to enlighten you. I'm using the data requested by the HttpClient post method. There is also a main activity jump before the request is implemented. The code is as follows:
Request Activity Code:
public class Machineinterface extends Activity {
Private ListView Machinetype;
Private arraylist<machineparams> machinelist = new arraylist<machineparams> ();
Private Machineadapter adapter;
Private Machineparams Mparams;
Private StringBuilder Builder;
String line = null;
Handler Handler = new Handler () {
public void Handlemessage (Android.os.Message msg) {
if (msg.what = = 0x123) {
Machinetype.setadapter (adapter);
}
}
};
@Override
protected void OnCreate (Bundle savedinstancestate) {
TODO auto-generated Method Stub
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.machine_interface);
Machinetype = (ListView) Findviewbyid (R.id.list_machine_type);
Thread thread = new Thread () {
@Override
public void Run () {
TODO auto-generated Method Stub
Super.run ();
Httpparams params = new Basichttpparams ();//interface to define network communication
Httpconnectionparams.setconnectiontimeout (params, 5000);//connection timeout is 5 seconds
Httpconnectionparams.setsotimeout (params, 5000);//data transfer timeout is 5 seconds
HttpClient client = new Defaulthttpclient (params);//Client Side implementation
Post Method request
HttpPost post = new HttpPost ("http://www.bomeans.com/api_v2/getTypeList.php?lang=tw&api_key= 80B546857C51B8DD53BAE4FD9CEC784605477EBBF ");
InputStream instream = null;
try {
HttpResponse response = Client.execute (post);//respond to a POST request
if (Response.getstatusline (). Getstatuscode () = = 200) {
httpentity entity = response.getentity ();//Entity Object
Instream = Entity.getcontent ();
BufferedReader breader = new BufferedReader (new InputStreamReader (instream));
Builder = new StringBuilder ();
while (line = Breader.readline ()) = null) {
Builder.append (line);
LOG.E ("Builder", builder.tostring ());
}
Jsonobject jsonobject = new Jsonobject (builder.tostring ());
LOG.E ("Jsonobject", jsonobject.tostring ());
Jsonarray array = new Jsonobject (builder.tostring ()). Getjsonarray ("Data");//can also be used
Jsonarray array = jsonobject.getjsonarray ("Data");
for (int i = 0; i < array.length (); i++) {
Jsonobject object = (jsonobject) array.opt (i);
Mparams = new Machineparams ();
Mparams.setmdname (object.getstring ("Md_name"));
Machinelist.add (Mparams);
LOG.E ("@11", "#114");
adapter = new Machineadapter (machineinterface.this, machinelist);
Handler.sendemptymessage (0x123);
}
}
} catch (IOException e) {
TODO auto-generated Catch block
E.printstacktrace ();
} catch (Jsonexception e) {
TODO auto-generated Catch block
E.printstacktrace ();
}
}
};
Thread.setcontextclassloader (GetClass (). getClassLoader ());
Thread.Start ();
Custom Adapter Code:
public class Machineadapter extends Baseadapter {
Private context context;
Private arraylist<machineparams> machinelist = new arraylist<machineparams> ();
Public Machineadapter (Context context,arraylist<machineparams> machinelist) {
This.context = context;
This.machinelist = machinelist;
}
@Override
public int GetCount () {
TODO auto-generated Method Stub
return Machinelist.size ();
}
@Override
Public Object getItem (int position) {
TODO auto-generated Method Stub
return position;
}
@Override
public long getitemid (int position) {
TODO auto-generated Method Stub
return position;
}
@Override
Public View GetView (int position, View Convertview, ViewGroup parent) {
TODO auto-generated Method Stub
Convertview = Layoutinflater.from (context). Inflate (r.layout.adapter, NULL);
TextView machinename = (TextView) Convertview.findviewbyid (r.id.text_machine);
Machinename.settext (Machinelist.get (position). Getmdname ());
return convertview;
}
}
An attribute class is a property.
Network request data in Android, parsing and adding to the ListView