【发布时间】:2017-02-17 12:04:00
【问题描述】:
我试图用简单的例子来理解变量范围。 我需要有关此代码的帮助
package com.varialescope.examplevariablescope;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button buttonOne;
private Button buttonTwo;
private String mText = "Hello World";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Initialialize UI elements
buttonOne = (Button) findViewById(R.id.button_one);
buttonOne = (Button) findViewById(R.id.button_two);
//Button One click listener
buttonOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Set new text
mText = "ONE";
Toast.makeText(MainActivity.this, mText, Toast.LENGTH_SHORT).show();
}
});
//Button Two click listener
buttonTwo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, mText, Toast.LENGTH_SHORT).show();
}
});
}
}
如何从点击监听器方法访问 mText 字符串?
如何为 mText 单击按钮 One 设置一个新字符串并使其可全局访问?
感谢帮助
【问题讨论】:
-
有什么问题?你不是从
OnClickListener中访问过mText吗? -
您已经在访问
mtext,但如果您想明确表达,请像这样:MainActivity.this.mText -
你能运行这个应用程序吗?我坚信一启动它就会崩溃
-
是的@iulian 应用程序崩溃。我不明白如何设置新的全局变量文本单击按钮一然后检索文本单击按钮二
-
我认为如果你修复了崩溃,你的代码会做你想做的事。为此,在您执行第二个 findViewById 的位置更改
buttonTwo中的buttonOne。问题是您为同一个对象分配了 2 个值,而另一个为 null,这会导致崩溃
标签: java android variables methods scope