android - 内部类中的最终变量问题

标签 android null

你能告诉我这里的错误是什么吗?它告诉我 toast make 中的“性别”必须设置为 final,但是当我这样做时,if 语句提示它不应该是 final

@Override
protected void onCreate(Bundle savedInstanceState) {

    String gender = null;

    Toast.makeText(this, R.string.ok, Toast.LENGTH_LONG).show();
super.onCreate(savedInstanceState);
setContentView(R.layout.createprofile);



    RadioButton rb_male = (RadioButton) findViewById(R.id.maleradiobutton);
String   male=rb_male.getText().toString();

    RadioButton rb_female = (RadioButton) findViewById(R.id.femaleradiobutton);
    String female=rb_male.getText().toString();

    if(rb_male.isChecked()) { gender = "male";}
    if(rb_female.isChecked()){ gender = "female";}

    Button checkgender = (Button) findViewById(R.id.gendercheck);
    checkgender.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            Toast.makeText(ProfileActivity.this, gender.toString(), Toast.LENGTH_LONG);
        }
    });




}




}

最佳答案

您不能从内部类访问局部非最终变量。一个简单的解决方法是在设置性别初始值后采用另一个最终变量。这样做:

if(rb_male.isChecked()) { gender = "male";}
if(rb_female.isChecked()){ gender = "female";}
final String finalGender = gender;

以后

Toast.makeText(ProfileActivity.this, finalGender.toString(), Toast.LENGTH_LONG).show();

还有其他方法,但这是最快的。

关于android - 内部类中的最终变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10236446/

相关文章:

c# - 反射 GetValue 空属性

c - 在 C 中初始化指向结构的指针数组

sql - 如果列表中的值为空,则 NOT IN 返回 false

android - 无法解析 android.arch.lifecycle :extensions:1. 1.0

android - 如何在 AOSP 构建中设置默认属性?

c# - 在 Linq 中处理 null

sql - NULL 值对 SQL Server 存储的影响?

android - 将更改发布到通知进度条

Android获取Fragment宽度

android - 我在 Here Maps 中不断收到 SSL 错误