我得到一个错误,说明本地变量stringtext和textview2需要完成?如果我告诉他们,如果我说对了,他们就不会更


public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText stringtext; // final error here
        stringtext = (EditText) findViewById(R.id.editText);

        TextView textView2; // final error here
        textView2 = (TextView) findViewById(R.id.textView2);

        Button startprogram = (Button) findViewById(R.id.button);
        View.OnClickListener listener = new View.OnClickListener(){
            @Override
            public void onClick(View view){
                // Insert what you want the button to do here!
                setContentView(R.layout.helloworld);
            }
        };
        startprogram.setOnClickListener(listener);
        // this is button to check the inserted code
        Button checkbutton = (Button) findViewById(R.id.checkbutton);
        View.OnClickListener listener1 = new View.OnClickListener(){
            public void onClick(View view){
                //insert button command here
                textView2.setText(stringtext.getEditableText());

            }
        };

    }

我得到一个错误,说明本地变量stringtext和textview2需要完成?如果我告诉他们,如果我说对了,他们就不会更新了…?

final仅表示不能更改变量的引用。对象状态仍然会正确改变。

如果一个匿名内部类(例如你的onClickListeners)引用了一个局部变量,该变量必须是final。这是因为匿名内部类实际上接收了该变量的副本, Java不希望原始和副本不同步。

标记为final的基本类型(例如intdouble)不能改变值;一旦设定好,它就卡住了。然而,引用对象的变量就是一个引用(本质上是对象在内存中的位置)。

引用不能更改为指向新对象,但对象的字段和方法可以正常使用。

相关内容

最新更新