0

私の活動では、ユーザーが選択したデータベースに応じて、さまざまなデータベースを照会するために呼び出す必要があります。それぞれを個別に呼び出す代わりに、クエリ用のコードを 1 つ用意し、単純にデータベースの意図またはクラスを文字列値から変更したいと考えています。基本的に、データベース名の参照をクラス「EmployeeDatabase」からユーザーが現在選択しているデータベースに変更する必要があります。選択した文字列 x をクラス y として設定し、クラス y をクエリできるようにする必要があります。わかる範囲で説明したつもりですが、わかりにくかったらすみません。ご協力ありがとうございました!

どういうわけか、ユーザーが選択したクラスとして変数 y を設定し、次のようにクエリできるようにする必要があります。EMP_TABLE4 を解決できないか、フィールドではないと表示されます。

1 つのデータベース オプションのみを使用した場合の現在のデータベースの動作:

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.redlight2);

    EmployeeDatabase db=null;

    try{
    ListContent = (ListView)findViewById(R.id.listView1);

    db=new EmployeeDatabase(this);

    c=db.query(EmployeeDatabase.EMP_TABLE4, null,
            null,null,null,null,null);


            mydisplayadapter4 adapter = new mydisplayadapter4(this, c);
            ListContent.setAdapter(adapter);

    }
    catch(Exception e){System.out.println("problem");}

どのように動作させたいか:

     String x;

Class<?> y;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.redlight2);

    String x = "my database class name";

    try {

        y = Class.forName(x);

    } catch (ClassNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }



    // I want to replace everything that says EmployeeDatabase with y

    EmployeeDatabase db=null;

    try{
    ListContent = (ListView)findViewById(R.id.listView1);

    db=new EmployeeDatabase(this);

    c=db.query(EmployeeDatabase.EMP_TABLE4, null,
            null,null,null,null,null);


            mydisplayadapter4 adapter = new mydisplayadapter4(this, c);// OWN ADAPTER
            ListContent.setAdapter(adapter);
4

1 に答える 1