2014-12-04 31 views
0

當試圖用按鈕打開一個新的活動時,按im獲取錯誤「無法解析符號'onclickListener'」,並且無法解析構造函數意圖。無法解析符號'onClickListener'

我的代碼是:

package uk.co.ryanmoss.computingrevision; 

    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.Menu; 
    import android.view.MenuItem; 
    import android.view.View; 
    import android.widget.Button; 
    import android.view.View.OnClickListener; 


    public class MainActivity extends Activity{ 




     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      Button ASButton = (Button) findViewById(R.id.asButton); 
      ASButton.setOnClickListener(new View.onClickListener() { 
       public void onClick(View v) { 
        Intent intent = new Intent(this, ASLevelActivity.class); 
        startActivity(intent); 
       } 
      }); 



     } 



     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      // Inflate the menu; this adds items to the action bar if it is present. 
      getMenuInflater().inflate(R.menu.menu_main, menu); 
      return true; 
     } 

     @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      // Handle action bar item clicks here. The action bar will 
      // automatically handle clicks on the Home/Up button, so long 
      // as you specify a parent activity in AndroidManifest.xml. 
      int id = item.getItemId(); 

      //noinspection SimplifiableIfStatement 
      if (id == R.id.action_settings) { 
       return true; 
      } 

      return super.onOptionsItemSelected(item); 
     } 


    } 
+3

是OnClickListener首都O – 2014-12-04 18:25:13

+0

不,它不是!這是固定的,但我仍然得到無法解析構造函數意圖的第二個錯誤。 – xiimoss 2014-12-04 18:28:13

+0

看看我的迴應,它會修復它... – 2014-12-04 18:28:42

回答

5

兩個重要的事情,首先是不onClickListener但 「OnClickListener」,最重要的是,OnClick方法中,而不是使用

Intent intent = new Intent(this, ASLevelActivity.class); 

您需要使用

Intent intent = new Intent(MainActivity.this, ASLevelActivity.class); 

那你通過正確的上下文的方式,而不是一般的類參考,請注意「MainActivity.this」

Regards

+0

謝謝你修復它 – xiimoss 2014-12-04 18:30:09

+0

不要忘記標記爲正確的,以便其他用戶知道如何解決它... – 2014-12-04 18:30:50

0

嘗試移動:

Button ASButton; 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ASButton = (Button) findViewById(R.id.asButton); 
     ASButton.setOnClickListener(new View.onClickListener() { 
      public void onClick(View v) { 
       Intent intent = new Intent(this, ASLevelActivity.class); 
       startActivity(intent); 
      } 
     }); 



    } 

的onCreate方法之外

5

必須是:

ASButton.setOnClickListener(new View.OnClickListener() { 

OnClickListener()啓動W上的方法第i個 「O」 資本

代替:

ASButton.setOnClickListener(new onClickListener() { 

和使用的Android Intent

Intent intent = new Intent(MainActivity.this, ASLevelActivity.class); 

此代碼將解決你的問題:

Button ASButton = (Button) findViewById(R.id.asButton); 
     ASButton.setOnClickListener(new View.onClickListener() { 
      public void onClick(View v) { 
       Intent intent = new Intent(MainActivity.this, ASLevelActivity.class); 
       startActivity(intent); 
      } 
     }); 

更多信息:

View.OnClickListener() Method