编辑全局变量

时间:2011-08-05 11:43:09

标签: android text global-variables

嗨我刚接触到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()部分显示错误。有人可以帮忙吗?

1 个答案:

答案 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?你会在那里得到一个类强制转换异常。