0
私はアンドロイドで簡単なxmppクライアントを作成していますが、私はアップデートcontactList
に問題があります。私はMatrixCursor
とSimpleCursorAdapter
を使っています。 progがリストを更新するとfutureTaskのスレッドが開始されます。データは大丈夫ですが、このfutureTaskのスレッドが実行を待っているので(考えているので)画面上のリストは更新されません。MatrixCursorを使ったAndroidのlistViewは更新されません - futureTask
drawContactList
連絡先が変更されたときに、1つのリスナーからメソッドが呼び出されます。たとえばmainへの呼び出しをコピーすると、それは完全に機能します。
どのように修正するのですか?
コード:
static ListView contactList;
static MatrixCursor clCursor;
static SimpleCursorAdapter adapterList;
private final String[] matrixCols = new String[] { "_id", "username", "description", "icon" };
private final String[] menuCols = new String[] {"username", "description", "icon" };
private final int[] toWhatId = new int[] { R.id.clUsername, R.id.clDescription, R.id.clStatusIcon };
...
public void drawContactList(ArrayList<Contact> contacts, Context context) {
clCursor = new MatrixCursor(matrixCols);
startManagingCursor(clCursor);
if(contacts != null){
for (Contact contact : contacts) {
clCursor.addRow(new Object[] { contact.id, contact.name, contact.description, contact.icon });
}
}
adapterList = new SimpleCursorAdapter(getApplicationContext(), R.layout.contactlist, clCursor, menuCols, toWhatId);
//in this line futureTask starts
contactList.setAdapter(adapterList);
}