Java 将预填充的数据库显示为listview

Java 将预填充的数据库显示为listview,java,android,xml,listview,Java,Android,Xml,Listview,我试图在listview中显示数据库的多个列。我使用的是sqliteasset帮助程序以及row.xml和main.xml。我的mainactivity扩展了listactivity。我得到的错误是findviewbyid找不到带有“R.id.list”的线性布局,但我的activity_main.xml有它 <TextView android:id="@+id/textView1" android:layout_width="wrap_conten

我试图在listview中显示数据库的多个列。我使用的是sqliteasset帮助程序以及row.xml和main.xml。我的mainactivity扩展了listactivity。我得到的错误是findviewbyid找不到带有“R.id.list”的线性布局,但我的activity_main.xml有它

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

</LinearLayout>
这是我的主类,它在列表中显示数据库信息

public class MainActivity extends ListActivity {

    private Cursor schedule;
    private MyDatabase db;
    ListView listView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        db = new MyDatabase(this);
        schedule = db.getSchedule();

        ListView listView = (ListView) findViewById(android.R.id.list);
        listView.setAdapter(new SimpleCursorAdapter(
           this,  // The context
           R.layout.row,  // The layout of the row to show
           db.getSchedule(),  // Here the cursor where the data is
                               // but it can be anything
           new String[] {"fName", "fType" },  // here the tables to show
           new int[] { android.R.id.text1, android.R.id.text2 },  // here where to show? the IDs
                                             // of the layout elements where put data.
           0));
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        schedule.close();
        db.close();
    }
}
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

</LinearLayout>
行:

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

</LinearLayout>
更改此行:

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

</LinearLayout>
android:id="@+id/list"

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

</LinearLayout>

您正在尝试从android默认库获取列表id。您应该从自己的布局中检索列表Id

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

</LinearLayout>
换行

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

</LinearLayout>
ListView listView = (ListView) findViewById(android.R.id.list);

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:text="TextView"
        android:textColor="#0000FF"
        android:textSize="25dp" />

</LinearLayout>

读这篇文章。我的程序不再崩溃,它显示两个相邻的“文本视图”!下一步是让他们说出正确的话。为什么我需要手动更改?就像它有什么不同,所以我不再犯这个错误了。ListActivity需要一个预定义的id,它在android R类中定义。您使用@+id定义了一个额外id,ListActivity无法将其识别为正确的id。