0

サービス リクエストXMLから取得しており、 .RestfulllistView

オンラインブログで見つけた同様の機能をエミュレートすることにしましたが、要素に割り当てたビュー形式ではなく、元のビューをフィードバックしているようです。

エラー

これで、複製された Twice が表示されます。[My Move Contacts] バーの後に、ListView複製が開始されます。

ListView の XML:

<ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button6"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true" >

    </ListView>

同様に、アダプターに使用している XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="left|center"
    android:paddingBottom="5dp"
    android:paddingTop="5dp"
    android:paddingLeft="5dp" >

    <TextView
        android:id="@+id/ContactTitle"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"/>

    <TextView
        android:id="@+id/Name"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" />
     <TextView
        android:id="@+id/MainPhone"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" />
      <TextView
        android:id="@+id/CellPhone"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" />
       <TextView
        android:id="@+id/Fax"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" />
       <TextView
        android:id="@+id/Email"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" />

</LinearLayout>

私はListViewsまだこれらを構築するのが得意ではなく、自分がやったことを知っていますが、指を置くことはできません。データを処理するための私のJavaは次のlistViewとおりです。

protected void onPostExecute(String result){
            String xml = result;
            String KEY_ITEM = "Contact";
            String KEY_CONTACTTITLE = "ContactTitle";
            String KEY_NAME = "Name";
            String KEY_MAINPHONE = "Phone";
            String KEY_CELLPHONE ="Cell";
            String KEY_FAX = "Fax";
            String KEY_EMAIL= "Email";
            ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

            Document doc = getDomElement(xml);
            if (xml != null) {
                {
                    NodeList nl = doc.getElementsByTagName(KEY_ITEM);
                    for (int i = 0; i < nl.getLength(); i++) {
                        HashMap<String, String> map = new HashMap<String, String>();
                        Element e = (Element) nl.item(i);
                        map.put(KEY_CONTACTTITLE, getValue(e, KEY_CONTACTTITLE));
                        map.put(KEY_NAME, getValue(e, KEY_NAME));
                        map.put(KEY_MAINPHONE, getValue(e, KEY_MAINPHONE));
                        map.put(KEY_CELLPHONE, getValue(e, KEY_CELLPHONE));
                        map.put(KEY_FAX, getValue(e, KEY_FAX));
                        map.put(KEY_EMAIL, getValue(e, KEY_EMAIL));
                        menuItems.add(map);
                    }

                    ListAdapter adapter = new SimpleAdapter(MoveContactsActivity.this, menuItems,
                            R.layout.activity_move_contacts, new String[] {
                                    KEY_CONTACTTITLE, KEY_NAME, KEY_MAINPHONE, KEY_CELLPHONE, KEY_FAX, KEY_EMAIL },
                            new int[] { R.id.ContactTitle, R.id.Name, 
                                    R.id.MainPhone, R.id.CellPhone, R.id.Fax, R.id.Email });
                    setListAdapter(adapter);
                }
            }

        }

誰かがこの問題で私を助けてくれたり、正しい方向に向けてくれたりしてくれたら嬉しいです. ありがとうございました!

4

1 に答える 1

1

使用するアダプターに間違ったレイアウトを指定しているようです。それか Eclipse の生成されたリソースが混乱しているので、クリーンアップを行う必要があります。

また、価値があること: doInBackground で解析とマップの生成を行い、戻り値を Map 型に変更し、各マッピングで publishProgress(hashMap) を呼び出す必要があります。次に、onProgressUpdate(Map... values) でマップを ArrayList に追加し、adapter.notifyDataSetChanged() を発行して新しいデータを通知します。

于 2013-02-26T22:17:11.887 に答える