-2

データベース.java

public class Data extends SQLiteOpenHelper {
public static String week, classes, title, mat, it, comp, que;

///データベースの作成、削除などのより一般的なコード

 public String[] getAllIAI(){

    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_IAI + "WHERE KEY_week =" +LessonPlanner.itemWeek+ "AND KEY_class=" +LessonPlanner.itemClass ;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor3 = db.rawQuery(selectQuery, null);
    String[] data = null;
    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {

            title=cursor.getString(3);
            mat=cursor.getString(4);
            it=cursor.getString(5);
       } while (cursor.moveToNext());
    }

    // closing connection
    cursor.close();
    db.close();

    // returning lables
    return data;
}   

Recomend.Java

宣言した

TextView  title, mat, IT;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.recomend);

    title = (TextView) findViewById(R.id.titleText);
    mat = (TextView) findViewById(R.id.materialText);
    IT = (TextView) findViewById(R.id.instTText);

    title.setText(Data.title);
    mat.setText(Data.mat);
    IT.setText(Data.it);

Textview (Multiline Text) には何も表示されなかったので、コードがどこか間違っていると思います。誰かが私の間違いを指摘できますか?私はEclipseをまったく初めて使用します。

4

1 に答える 1

0

コードにはいくつかの間違いがあります。最初に、返す配列「データ」は常に null であるため、もちろんそこから何も取得できません。

次に、データベースからいくつかの結果を取得する予定がある場合は、リストを宣言し、DB から取得したオブジェクトをリストに追加する必要があります。現在、ループはまったく役に立たず、決して使用しない変数をインスタンス化します...

DB からリストを取得する方法を示す例を次に示しますが、カーソル、配列、または必要なものを取得することもできます。

// Getting All Categories By ID
    public List<Category> getCategoriesList() {
        String selectQuery = "SELECT " + CATEGORY_ID + ", " + CATEGORY_NAME + " FROM " + CATEGORY_TABLE + " ORDER BY " + CATEGORY_ID + " ASC";
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null); 

        List<Category> categoriesList = new ArrayList<Category>();

        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                Category category = new Category(cursor.getInt(0), cursor.getString(1), false);
                categoriesList.add(category);
            } while (cursor.moveToNext());
        }

        cursor.close();
        db.close();
        return categoriesList;
    }

注: この例では、DB から複数の行を取得します。1 つの行のみを取得する場合は、ループ do-while を削除して、オブジェクトを直接返します。

于 2013-04-13T15:20:46.270 に答える