变量可能没有初始化错误

时间:2013-11-03 00:22:20

标签: java android

我正在使用附加功能在实例之间传递一个变量,我启动了变量但android studio给了我一个错误,说它可能没有被初始化...

public class TasteNotePage extends ActionbarMenu {

    String beerID = "a";
    Dialog dialog = null;


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tastenote_page);
        //get beer data
        Intent intent = getIntent();
        Bundle b = intent.getExtras();
        beerID = b.getString("id");



        //get beer name, get our review if you have one, get all reviews and set

        //check if user has beer
        String url2 = "myURL";
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        String userID = prefs.getString("userID", null);
        String userURLComp = "x=" + userID;
        String beerID = "&z=" + beerID;

错误发生在上面代码的最后一行的beerID。知道如何解决这个问题吗?

4 个答案:

答案 0 :(得分:2)

行前删除String
  beerID = "&z=" + beerID;

String表示您正在为该方法创建一个新变量的程序,该变量隐藏了类中的属性beerID。显然,当你在后面的行中尝试使用它的值时,它还没有被初始化。

答案 1 :(得分:2)

最后一行的最后一个beerID是指局部变量beerID,而不是成员变量。如果要分配给成员变量,请将其更改为beerID = "&z=" + beerID;,否则将其更改为String beerID = "&z=" + this.beerID;

答案 2 :(得分:0)

您在onCreate中再次声明变量,而不是使用在类上声明的次数 - 在这种情况下,它未初始化:

String beerID = "&z=" + beerID;

我想它应该是:

beerID = "&z=" + beerID;

答案 3 :(得分:0)

您初始化了beerID两次。如果它们应该是同一个变量,则从第二个中删除一个String。