Java 访问不同类的值

Java 访问不同类的值,java,android,class,Java,Android,Class,我试图访问classMainactivity中存在的EDTXT值,该值包含在classMainactivity中: Button btn=(Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { EditT

我试图访问class
Mainactivity
中存在的
EDTXT
值,该值包含在class
Mainactivity
中:

Button btn=(Button)findViewById(R.id.btn);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText edttxt =(EditText)findViewById(R.id.edttxt);
                TextView txtview =(TextView)findViewById(R.id.textView);
                txtview.setText(edttxt.getText().toString());
            }
        });
我需要的访问权限是用其他类中的EDTXT值替换100个值,这是我需要修改其他类的部分:

Button btn=(Button)findViewById(R.id.btn);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText edttxt =(EditText)findViewById(R.id.edttxt);
                TextView txtview =(TextView)findViewById(R.id.textView);
                txtview.setText(edttxt.getText().toString());
            }
        });
public void switchFlash() {
        final Runnable runnable = new Runnable() {
            @Override
            public void run() {
                if (isFlashOn()) {
                    turnOffFlash();
                    x++;    
                } else if (x>20) {
                    turnOffFlash();
                }
                else
                {
                    turnOnFlash();
                }
                handler.postDelayed(this,100);
            }
        };
        handler.postDelayed(runnable,100);
    }

正如我从上面的对话以及代码的上下文中所理解的,您想要传递给另一个类的是EditText视图中包含的值(字符串),而不仅仅是视图本身。在这种情况下,您有不同的选项,但一种简单的方法是在创建对象时使用构造函数将此“值”传递给另一个类,如下所示:

Button btn=(Button)findViewById(R.id.btn);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText edttxt =(EditText)findViewById(R.id.edttxt);
                TextView txtview =(TextView)findViewById(R.id.textView);
                txtview.setText(edttxt.getText().toString());
            }
        });
Button btn=(Button)findViewById(R.id.btn);
final EditText edttxt =(EditText)findViewById(R.id.edttxt);
OtherClass otherClass = new OtherClass(delay);
btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        delay = edttxt.getText().toString();
        TextView txtview =(TextView)findViewById(R.id.textView);
        txtview.setText(edttxt.getText().toString());
    }
});
将delay声明为MainActivity类的全局变量,如:

Button btn=(Button)findViewById(R.id.btn);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText edttxt =(EditText)findViewById(R.id.edttxt);
                TextView txtview =(TextView)findViewById(R.id.textView);
                txtview.setText(edttxt.getText().toString());
            }
        });
public class MainActivity extends AppCompatActivity {

    private String delay;
    ....
你的另一门课可能是这样的:

Button btn=(Button)findViewById(R.id.btn);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText edttxt =(EditText)findViewById(R.id.edttxt);
                TextView txtview =(TextView)findViewById(R.id.textView);
                txtview.setText(edttxt.getText().toString());
            }
        });
public class OtherClass {
    int delay;
    public OtherClass(String delay){
        this.delay = Integer.parseInt(delay);
    }
    //...your code
    public void switchFlash() {
        final Runnable runnable = new Runnable() {
            @Override
            public void run() {
                if (isFlashOn()) {
                    turnOffFlash();
                    x++;
                } else if (x>20) {
                    turnOffFlash();
                }
                else
                {
                    turnOnFlash();
                }
                handler.postDelayed(this,delay);
            }
        };
        handler.postDelayed(runnable,delay);
    }
}

问题是?声明静态全局变量并在其中存储编辑文本值。然后使用
ClassName.yourStaticvariableName
在任何类中访问该静态变量。声明一些静态变量并存储该值,然后尝试将其访问到类中。您还需要进一步澄清,能否请您更详细地解释这些内容并有意地描述pass变量,不要为此使用静态变量。如果你需要如何做到这一点,我可以分享。我修改了代码,但当我上传到手机的应用程序停止工作之前,它开始。可能有一个错误在你的代码的其他部分,所以请提供它,如果可能的话,以便我们能够帮助你。当您的应用程序停止时,logcat中还会显示一条错误消息,这使得调试非常容易,因此也请提供这条消息。