0

これが簡単なものであることを願っています!

実際に返されたデータではなく、レイアウトがリストビューに表示されている理由を誰か教えてもらえますか?

たとえば、データベースに「John」という名前が 2 つある場合、「EditText」から「John」という名前を送信してデータベースにクエリを実行すると、正しい数のリストビュー セルが作成されますが、レイアウトが 2 回表示されるのではなく、2 回表示されます。返された詳細!

リストビューで編集テキストとボタンが重複して出力される問題:

データベースに「Dave」という名前の人が 1 人いるので、リスト ビューに正しい結果番号、つまり「1」が表示されますが、問題は、名前、連絡先、電子メール、コメントを表示する必要があることです。レイアウトやり直し!

私

XML を検索:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/inputSearchName"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/txtsearch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Type Name To Search:"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText
    android:id="@+id/inputName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >

    <requestFocus />
</EditText>

<Button
    android:id="@+id/btnSearchName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Search" />

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

</LinearLayout>

検索コード:

    search.open();
Cursor cursor = search.searchOnName(searchedName);

startManagingCursor(cursor);

@SuppressWarnings("static-access")
String [] from = new String [] {DBsearchRef.KEY_NAME, DBsearchRef.KEY_TEL, DBsearchRef.KEY_EMAIL, DBsearchRef.KEY_COMMENTS};
int [] to = new int [] {R.id.txtNameList, R.id.txtTelList, R.id.txtEmailList, R.id.txtCommentsList};

@SuppressWarnings("deprecation")

SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, R.layout.search, cursor, from, to);
searchedListResults.setAdapter(cursorAdapter);

問題は、「検索」クラスのレイアウトがリストビューに表示されていることです....しかし、リストビューはこのクラスの一部であるため、これは正しい参照になると思いましたか?

4

1 に答える 1

1

実際に返されたデータではなく、レイアウトがリストビューに表示されている理由を誰か教えてもらえますか?

Adapter に渡す XML レイアウトは次のとおりです。

SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, R.layout.search, cursor, from, to);

各行で使用されるレイアウトです。明らかに を使用したくない場合は、使用したいレイアウトにsearch.xml変更してください。R.layout.search


追加
このコードを試してみてください。違いを理解するのに役立つかもしれません:

@SuppressWarnings("deprecation")
SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, 
        android.R.layout.simple_list_item_1, 
        cursor, 
        new String[] {DBsearchRef.KEY_NAME}, 
        new int[] {android.R.id.text1});
searchedListResults.setAdapter(cursorAdapter);
于 2013-01-13T19:58:29.767 に答える