사용자 지정된 ArrayAdapter를 사용하여 listview를 보유하고 있습니다. ArrayAdapter가 변경되면 GUI가 업데이트됩니다. 그러나 업데이트 할 때 에뮬레이터의 키를 누르지 않으면 업데이트되지 않습니다. 에뮬레이터에서 임의의 버튼을 클릭하지 않으면 클릭 가능한 행을 클릭 할 수 없습니다. 리스트 뷰에 대한 기본 데이터는 다른 곳에서 변경 한 후 데이터는 버튼 매직 터치 한 후 제대로 제시ListView가 업데이트되지 않습니다.
public void update(java.util.Observable arg0, Object arg1)
{
Log.e("Supposed","to update");
ad.notifyDataSetChanged(); //Ad is the arrayadapter
}
관찰자 (이 경우 목록보기)를 통지한다. 하지만 왜? 의견이 있으십니까? ArrayAdapter의 items-reference를 검사하면 업데이트 된 값이 표시되지만 GUI는 표시되지 않습니다. Plz은 도움이
편집 : ArrayAdapter와의이 이 변경되면
private class MustAdapter extends ArrayAdapter<Item>
{
public MustAdapter(Context context, int textViewResourceId, ArrayList<Item> items)
{
super(context,textViewResourceId,items);
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
Item o = items.get(position);
if (o != null) {
TextView tt = (TextView) v.findViewById(R.id.text1);
TextView bt = (TextView) v.findViewById(R.id.text2);
ImageView iv= (ImageView) v.findViewById(R.id.img);
ImageView ib = (ImageView)v.findViewById(R.id.OnOffButt);
if (ib != null) {
ib.setTag(position);
if (((Ventilation)o).enabled ==0) {
ib.setImageResource(android.R.drawable.ic_input_delete);
}
else
ib.setImageResource(android.R.drawable.ic_input_add);
ib.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
int index=((Integer)arg0.getTag()).intValue();
Ventilation v= (Ventilation)items.get(index);
v.enabled=v.enabled != 0 ? 0 : 1;
//ad.notifyDataSetChanged();
DU.toggle(v);
}
});
}
if (iv !=null){
iv.setImageResource(R.drawable.fan);
}
if (tt != null) {
tt.setText(""+((Ventilation)o).actual); }
if(bt != null){
bt.setText(""+((Ventilation)o).setPoint);
}
}
return v;
}
내가 arrayadapter.add 사용하는 경우에도 (항목) 나는
심지어 arrayadapter.add (Item)는 변경 사항에 응답하기 위해 아무 버튼이나 눌러야합니다. – Raul
@ 라울 : 아니에요. http://github.com/commonsguy/cw-android/tree/master/Threads/Asyncer/ 및 http://github.com/commonsguy/cw-andtutorials/tree/master/04-ListView/ – CommonsWare
추측 에뮬레이터 그러면 작동하지 않습니다. 나는 우분투를 며칠 안에 시험해 보겠다. – Raul