0
잘하면 누군가가 올바른 방향으로 나를 가리킬 수 있습니다, 나는 listview 이미지, ID, 텍스트 3 항목을 표시하는 사용자 지정 어댑터를 만들고 있어요.안드로이드 맞춤 어댑터 전달 객체의 ArrayList
그래서 잘 작동하는 JSON 객체를 반환하는 webservice에서 데이터를 가져옵니다. 내 문제는 어디에 목록이 어떤 데이터도 가지고 있지 않기 때문에, Asynctask 이후 어디서 잘못 될지 모르겠다. 이미 하나의 필드를 회 전자에 전달할 때 이것을 구현했지만, 그것을 알아 내지 못한다. 나는 사용자 정의 어댑터가 수동으로 새로운 CallOut 객체를 할당하고 Arraylist에 추가 할 때처럼 도움이된다고 알고있다.
public class ListCallOuts extends Activity {
ArrayList<CallOut> callOutResults=new ArrayList<CallOut>(); //=GetCallOuts();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
GetCallOuts();
//ArrayList<CallOut> searchResults = GetSearchResults();
final ListView lv1 = (ListView) findViewById(R.id.listView1);
lv1.setAdapter(new CallOutAdapter(this,callOutResults));
//lv1.setAdapter(new CallOutAdapter(this, searchResults));
lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = lv1.getItemAtPosition(position);
CallOut fullObject = (CallOut)o;
Toast.makeText(ListCallOuts.this, "You have chosen: " + " " +
fullObject.getName(), Toast.LENGTH_LONG).show();
}
});
}
private void GetCallOuts() {
new DownloadCallouts().execute(new String[]
{"http://192.168.0.16:8080/return_callouts.json"});
}
private class DownloadCallouts extends AsyncTask<String,Void,JSONArray> {
@Override
protected JSONArray doInBackground(String... urls) {
JSONArray array = null;
for (String url : urls) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse execute = client.execute(httpGet);
HttpEntity entity = execute.getEntity();
String data = EntityUtils.toString(entity);
array = new JSONArray(data);
} catch (JSONException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return array;
}
@Override
protected void onPostExecute(JSONArray jsonArray) {
for(int i=0;i<jsonArray.length();i++){
try {
JSONObject row = jsonArray.getJSONObject(i);
CallOut callOut = new
CallOut(row.getString("id"),row.getString("customer_name")) ;
callOutResults.add(callOut);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
}
덕분에, 내가 CallOutAdapter 정의 실현한다하더라도 일을했다, 많이, 무엇 R.id 해입니다 – Paulmc
평가 .LiCallOutAdapter? –