'작동하지 않습니다'대신 'I '과 같은 형식으로 작성해야하지만 첫 번째 버전은 더 좋아집니다. :) 내가 뭘하려고하면 다음과 같다 : 사용자 정의 어댑터를 사용하여 객체 ('아무튼 Android listview 항목이 표시되지 않습니다.
- 는 웹에서 XML을 다운로드를 분석하고 일부 객체의 ArrayList를 만들 (완료 및 작업) 표시 내가 ArrayList를에 항목을 추가하는 경우 t 작업)는
두 번째는 내가 에
m_orderAdapter = new OrderAdapter(this,m_orders); //code for orderadapter
below
setListAdapter(m_orderAdapter);
를 사용하여 뷰를 추가하기 전에 작동 주문 객체로 private void getOrders(){
try{
OrderManager om = new OrderManager();
m_orders = om.getOrdersFromWeb();
Log.i("ARRAY", ""+ m_orders.size());
} catch (Exception e) {
Log.e("BACKGROUND_PROC", e.getMessage());
}
runOnUiThread(returnRes);
}
OrderManager 다운로드 및 XML을 구문 분석 : (내에서 onCreate 방법)
handler = new Handler();
viewOrders = new Runnable(){
@Override
public void run() {
getOrders();
}
};
new Thread(){
@Override
public void run(){
handler.post(viewOrders);
}
}.start();
다음, 다음과 같은 방법에 대한 코드 :
이 같은 웹 뭔가 발견 그 배열 목록을 으로 반환합니다. 그런 다음이 목록을 회원 배열 목록 m_orders에 설정합니다. 일단 다운로드 및 구문 분석 나는 runOnUiThread
방법
private Runnable returnRes = new Runnable() {
@Override
public void run() {
if(m_orders != null && m_orders.size() > 0){
Log.i("ORDER",m_orders.get(0).getOrder_id());
setListAdapter(m_orderAdapter);
m_orderAdapter.notifyDataSetChanged();
}
m_orderAdapter.notifyDataSetChanged();
}
};
를 사용하여 UI 스레드 에 returnRes 방법을 실행하고 내 어댑터 notifyDataSetChanged()를 호출 이루어집니다. 나는 내 m_orders리스트 내부의 데이터를 디버깅 할 때
public class OrderAdapter extends BaseAdapter{
private Context ctx;
private List<Order> orders;
public OrderAdapter(Context ctx, List<Order> orderLst){
this.ctx = ctx;
this.orders = orderLst;
}
@Override
public int getCount() {
return orders.size();
}
@Override
public Object getItem(int pos) {
return orders.get(pos);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Order o = orders.get(position);
return new OrderListAdapterView(this.ctx,o);
}
}
하지만 호출 할 때 아무것도 notifyDataSetChanged 없습니다 :
나는이 모든 물건을 ListView에 어댑터 자체의 코드를 확장 할 뷰는 아래와 같습니다 그런데 내가 생각하기에 UI 스레드에서 을 실행해야한다고 읽었습니다. 그래서 문제가 뭐야? 어떤 도움을 주시면 감사하겠습니다. 또는 에있는 좋은 자습서로 연결되는 링크를 통해 웹에서 런타임시 목록보기를 업데이트하는 방법에 대해이 문제를 설명 할 수 있습니까?