嗨我刚接触到android并且我有一个程序,它有一个全局变量定义并且它可以工作,所以我可以设置它并在每个活动中获取它,但它似乎要在点击监听器中更改。我在屏幕上创建了一个edittext,当有人按下按钮时,我想将edittext文本放入全局变量中。这是我的代码:
Button SiteButton = (Button) findViewById(R.id.SiteButton);
SiteButton.setOnClickListener(new View.OnClickListener() {
TextView textviewS = (TextView) findViewById(R.id.SiteIdT);
EditText edittextS = (EditText) findViewById(R.id.SiteIdE);
TextView textviewB = (TextView) findViewById(R.id.BusIdT);
EditText edittextB = (EditText) findViewById(R.id.BusIdE);
public void onClick(View v) {
textviewS.setText(edittextS.getText());
((Global) this.getApplication()).setgSiteId(textviewS.getText().toString());
textviewB.setText(edittextB.getText());
((Global) this.getApplication()).setgVehicleId(textviewB.getText().toString());
}
});
但getApplication()
部分显示错误。有人可以帮忙吗?
答案 0 :(得分:0)
您应该参考您的活动this
,因为View.OnClickListener
没有这样的方法:
// Bad code! read below
((Global) MyActivityClassName.this.getApplication()).setgSiteId(textviewS.getText().toString());
textviewB.setText(edittextB.getText());
((Global) MyActivityClassName.this.getApplication()).setgVehicleId(textviewB.getText().toString());
顺便说一句,你如何将回报从getApplication()
转为Global
?你会在那里得到一个类强制转换异常。