2014-04-23 109 views
-4

我在我的java代码中尝试编译我的代码时出现此错误。当我尝试将文本视图中的文本值变为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"; 

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

为什么?

编辑:感谢downvote我的问题,是的,我搜索了另一个类似的问题,我已经尝试过使用静态方法...然后不崩溃,但var的内容为空,不起作用在所有。

+4

什么你广泛的搜索,弹出? –

+1

使'post'方法非静态。因为您无法访问静态方法内的非静态变量。 – iMBMT

+1

“_我无法理解这个错误_”你不能?还是没有试过? – csmckelvey

回答

0

不能从静态方法访问变量非静态...

解决方案:

  1. 让EDITTEXT静态
  2. 它不符合逻辑的一个静态方法访问的变量的非静态,所以你应该改变那里的逻辑!

问候:)...

相关问题