1

我正在使用 extras 在实例之间传递一个变量,并且我启动了该变量,但是 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

4 回答 4

2

删除String行前

  beerID = "&z=" + beerID;

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

于 2013-11-03T00:26:00.520 回答
2

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

于 2013-11-03T00:26:05.360 回答
0

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

String beerID = "&z=" + beerID;

我想应该是:

beerID = "&z=" + beerID;
于 2013-11-03T00:26:19.520 回答
0

您初始化 beerID 两次。如果它们应该是相同的变量,请从第二个字符串中删除其中一个。

于 2013-11-03T00:42:18.060 回答