Java Android Studio变量最终声明问题

Java Android Studio变量最终声明问题,java,android,declaration,Java,Android,Declaration,我有一个恼人的问题。这些代码在两天前就开始工作了,但现在它说“takim1Text”必须被声明为最终版本,可能还没有初始化。 2天前我不需要宣布它是最终的。现在怎么了? 有密码。。。顺便谢谢你 Button devamButton; EditText takim1, takim2; devamButton = (Button) findViewById(R.id.devamButton); takim1 = (EditText) findViewById(R.id.tak

我有一个恼人的问题。这些代码在两天前就开始工作了,但现在它说“takim1Text”必须被声明为最终版本,可能还没有初始化。 2天前我不需要宣布它是最终的。现在怎么了? 有密码。。。顺便谢谢你

Button devamButton;
    EditText takim1, takim2;
    devamButton = (Button) findViewById(R.id.devamButton);
    takim1 = (EditText) findViewById(R.id.takimA);
    takim2 = (EditText) findViewById(R.id.takimB);
    String takim1Text;
    String takim2Text;
    devamButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            takim1Text = takim1.getText().toString();
            takim2Text = takim2.getText().toString();
            if (takim2Text.equals(takim1Text)) {
                Toast toast1 = Toast.makeText(getApplicationContext(), "cant be same", Toast.LENGTH_SHORT);
                toast1.show();
            } else if (takim1Text.isEmpty() || takim2Text.isEmpty()) {
                Toast toast2 = Toast.makeText(getApplicationContext(), "cant be empty", Toast.LENGTH_SHORT);
                toast2.show();
            } else {
                Toast toast3 = Toast.makeText(getApplicationContext(), "works", Toast.LENGTH_SHORT);
                toast3.show();
            }
        }
    });

我解决了这个问题。只是让变量全球化

Button devamButton;
EditText takim1, takim2;
String takimTextA;
String takimTextB;
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    devamButton = findViewById(R.id.devamButton);
    takim1 = findViewById(R.id.takimA);
    takim2 = findViewById(R.id.takimB);
    devamButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            takimTextA = takim1.getText().toString();
            takimTextB = takim2.getText().toString();
            if (takimTextA.equals(takimTextB)) {
                Toast toast1 = Toast.makeText(getApplicationContext(), "cant be same", Toast.LENGTH_SHORT);
                toast1.show();
            } else if (takimTextA.isEmpty() || takimTextB.isEmpty()) {
                Toast toast2 = Toast.makeText(getApplicationContext(), "cant be empty", Toast.LENGTH_SHORT);
                toast2.show();
            } else {
                Toast toast3 = Toast.makeText(getApplicationContext(), "works", Toast.LENGTH_SHORT);
                toast3.show();
            }
        }
    });

您应该这样做全局声明:

public class MainActivity extends AppCompatActivity {

protected Button btn;


String name;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setContentView(R.layout.activity_main);

在此期间你做了什么?你有没有改变密码?我什么都没做。只是删除了旧的活动类型并将代码移动到了新的活动它不会产生任何问题,但是如果在onClick方法之外没有对该变量的任何其他用途,那么应该在onClick()方法中使它们成为本地变量。