Java 访问不同类的值
我试图访问classJava 访问不同类的值,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
Mainactivity
中存在的EDTXT
值,该值包含在classMainactivity
中:
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中还会显示一条错误消息,这使得调试非常容易,因此也请提供这条消息。