使用方法从其他活动获取变量后,我无法使用它进行进一步编码。
我变得像这样:
public void setBank(String bank){
selectedBank=bank;
System.out.println(bank);
}
用println检查我得到了什么并将其“保存”到selectedBank变量,我在类的开头声明了这个public String selectedBank="";
整个代码:
public class MyDatabase extends SQLiteAssetHelper {
private static final String DB_NAME = "bankomati_db.sqlite";
private static final int DB_VERSION = 1;
public String selectedBank="";
public MyDatabase(Context context){
super(context, DB_NAME, null, DB_VERSION);
}
public void setBank(String bank){
selectedBank=bank;
System.out.println(bank);
}
//other methods
}
这不起作用,当我在其他方法中检查selectedBank时,它是juts“”。
如何从方法setBank中“保存”变量,以便我可以在其他方法中使用它。
编辑: 这是我的方法,我需要我的变量(selectedBank)。
public List<String> getBankomatLocation(){
SQLiteDatabase db = getReadableDatabase();
//String [] sqlSelect={"0 _id", "Banka", "Naslov", "Posta", "Kraj"};
String [] sqlSelect={"0 _id", "Naslov"};
String sqlTables = "Bankomati_db";
System.out.println("selectedBank:" + selectedBank);
String [] args ={selectedBank};
List<String> bankomati = new ArrayList<String>();
Cursor c = db.query(false, sqlTables, sqlSelect, "Banka=?", args, null, null, null, null, null);
//Cursor c = db.query(false, sqlTables, sqlSelect, null, null, null, null, null, null, null);
if (c.moveToFirst()){
do{
bankomati.add(c.getString(1));
}while (c.moveToNext());
}
c.close();
db.close();
return bankomati;
}
当调用方法getReadableDatabase时,它是否也可以将变量设置为“”?
答案 0 :(得分:-2)
您必须确保使用this
。关键字,以确保您更改的值将保持在类中的更改。稍后在调用setBank()
方法后,请稍后询问该值。我冒昧地尝试了没有实现类的代码,它在我的最终工作。
在我尝试的这段代码中,我添加了一个构造函数方法public MyDatabase(String selectedBank)
,以便在main函数中测试它。这是我尝试的代码。
public class MyDatabase {
private static final String DB_NAME = "bankomati_db.sqlite";
private static final int DB_VERSION = 1;
public String selectedBank = "";
public MyDatabase(String selectedBank){
//this.selectedBank = selectedBank;
}
public void setBank(String bank){
this.selectedBank = bank;
System.out.println(bank);
}
//other methods
//This is to test the values of the variable 'selectedBank'
public static void main(String[] args){
//Create new object MyDatabase to test the value of the "selectedBank"
MyDatabase d = new MyDatabase("");
//print the name of the bank in the method
d.setBank("My Bank");
//I can access the name of the bank after calling the method
System.out.println(d.selectedBank);
}
}