私の活動では、ユーザーが選択したデータベースに応じて、さまざまなデータベースを照会するために呼び出す必要があります。それぞれを個別に呼び出す代わりに、クエリ用のコードを 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);