В моей деятельности мне нужно позвонить, чтобы запросить разные базы данных, в зависимости от того, какой пользователь выбирает. Вместо вызова каждого из них я хотел бы иметь один код для запроса и просто изменять намерение или класс базы данных из строкового значения. В основном мне нужно изменить ссылку на базу данных из моего класса «EmployeeDatabase» в любую базу данных, которую пользователь выбрал сейчас. Мне нужно установить выбранную строку x как класс y, а затем запросить класс y. Я пытаюсь объяснить, насколько мне известно, извините, если это сбивает с толку. Спасибо за помощь!ссылочный класс из строкового значения и запроса
Как-то мне нужно установить переменную y в зависимости от того, какой пользователь выбирает, а затем иметь возможность запрашивать: c = db.query (y.EMP_TABLE4, null, null, null, null, null, null) ; Он говорит, что EMP_TABLE4 не может быть разрешен или не является полем.
Как моя база данных работает прямо сейчас с опцией только одна БД:
@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);
Благодарим за помощь, однако я не понимаю, как правильно это сделать. Я довольно новичок в этом. Любой простой способ вызова класса из сменной переменной? – Cgramme
Я понял. Я изменяю DATABASE_NAME со сменной строкой из sharedpreferences. ... Кажется, работает очень хорошо. – Cgramme