变量没有值

时间:2016-01-11 18:05:40

标签: java android variables

使用方法从其他活动获取变量后,我无法使用它进行进一步编码。

我变得像这样:

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时,它是否也可以将变量设置为“”?

1 个答案:

答案 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);  
    }
}