无法对非静态方法进行静态引用

时间:2014-04-23 16:35:10

标签: java variables methods var

我在我的java代码中有这个,当我尝试编译我的代码时出现错误。当我尝试将textview中的文本值转换为var时会发生这种情况。我无法理解这个错误,因为它在其他方法中工作正常。

为什么会这样,我该如何解决?

    public class MainActivity extends Activity {

        public EditText editText;
        TextView textView;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toast.makeText(MainActivity.this, "onCreate", Toast.LENGTH_LONG).show();

            //setupMessageButton();

            editText = (EditText) findViewById(R.id.editText1);
            textView = (TextView)findViewById(R.id.tvIsConnected);


        }

        public void btnDisplayMessage(View view){

            //HERE WORKS FINE
            String missatge = editText.getText().toString();

        }

    public static String POST(String url){
        InputStream inputStream = null;
        String result = "";
        //HERE CRASHES
        String missatge = "red"//editText.getText().toString(); GIVES ERROR
        String usuario = "foo";

............

为什么?

编辑:谢谢你的问题,是的,我搜索了另一个类似的问题,我已经尝试过使用静态方法...然后不要崩溃,但var的内容为null,不适用于所有

1 个答案:

答案 0 :(得分:0)

您无法从静态方法中访问变量非静态...

解决方案:

  1. make editText static
  2. 它不是Logical,一个静态方法访问一个非静态变量,所以你应该改变那里的逻辑!
  3. 问候:)......