1

各 ListView のデータベース クエリからのデータを使用して、1 つのアクティビティで複数の ListView を表示する必要がありますが、次のコードを使用して 2 つの ListView を同時に表示することはできません。このように、もしそうなら、以下の私のコードの何が問題なのですか:

私のXML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
    android:layout_width="fill_parent"
      android:layout_height="wrap_content"
    android:layout_weight="1" >

    <ListView
        android:id="@+id/symptomsList"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:visibility="visible">
    </ListView>
</LinearLayout>


<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <ListView
        android:id="@+id/syndromesList"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:visibility="visible">
    </ListView>
</LinearLayout>

そしてJava:

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;




public class TestActivity extends Activity {


ListView symptomsList;
ListView syndromesList;
SimpleCursorAdapter adapter;
SimpleCursorAdapter adapter2;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test);

 // Find views
   symptomsList = (ListView) findViewById(R.id.symptomsList); 
   syndromesList = (ListView) findViewById(R.id.syndromesList); 


SQLiteDatabase db = (new DatabaseHelper(this)).getWritableDatabase();



     Cursor cursor = db.rawQuery("SELECT _id, symname FROM tblsymptoms WHERE _id = 1", null);



    adapter = new SimpleCursorAdapter(
            this, 
            R.layout.test_list_item,
            cursor, 
            new String[] {"symname"}, 
            new int[] {R.id.text1,});
    symptomsList.setAdapter(adapter);




Cursor cursor2 = db.rawQuery("SELECT tblsyndromes._id, tblsyndromes.synname FROM tblsyndromes WHERE _id = 1", null);

adapter2 = new SimpleCursorAdapter(
        this,
         android.R.layout.simple_list_item_multiple_choice,
        cursor2, 
        new String[] {"synname", "_id"}, 
            new int[] {android.R.id.text1, android.R.id.text2});
symptomsList.setAdapter(adapter2);
symptomsList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);


}
}
4

2 に答える 2

2

あなたのコードを見てください...

symptomsList.setAdapter(adapter);
symptomsList.setAdapter(adapter2);    // problem here

私はそれがあるべきだと思います...

symptomsList.setAdapter(adapter);
syndromesList.setAdapter(adapter2);
于 2012-04-23T09:32:58.397 に答える