2013-01-09 154 views
4

我已經創建了這個活動,應該允許我在按下按鈕後打開一個新活動。Android:按鈕OnClickListener不工作

但是,OnClickListener似乎沒有工作。

我聲明按鈕是否錯誤?

有人能出去嗎?

public class Menu extends Activity { 


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

    View loginbutton = findViewById(R.id.butlogin); 
    loginbutton.setOnClickListener(this); 

    View recordbutton = findViewById(R.id.butrecordts); 
    recordbutton.setOnClickListener(this); 

    View viewbutton = findViewById(R.id.butviewts); 
    viewbutton.setOnClickListener(this); 

    View projectsbutton = findViewById(R.id.butprojects); 
    projectsbutton.setOnClickListener(this); 

} 

public void onClick(View v){ 

    switch(v.getId()) 
    { 
    case R.id.butlogin: 
    { 
     //open login screen 
     Intent i = new Intent(this, login.class); 
     startActivity(i); 
     break; 
    } 
    case R.id.butrecordts: 
    { 
     break; 
    } 
    case R.id.butviewts: 
    { 
     break; 
    } 
    case R.id.butprojects: 
    { 
     break; 
    } 

    } 
} 

回答

6

是的,問題是在按鈕的宣言,寫下面的代碼,而不是你的代碼,它會解決你的問題。

public class Menu extends Activity implements OnClickListener{ 

    Button loginbutton, recordbutton, viewbutton, projectsbutton; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.menu); 

     loginbutton = (Button) findViewById(R.id.butlogin); 
     loginbutton.setOnClickListener(this); 

     recordbutton = (Button) findViewById(R.id.butrecordts); 
     recordbutton.setOnClickListener(this); 

     viewbutton = (Button) findViewById(R.id.butviewts); 
     viewbutton.setOnClickListener(this); 

     projectsbutton = (Button) findViewById(R.id.butprojects); 
     projectsbutton.setOnClickListener(this); 

    } 

    public void onClick(View v){ 

     switch(v.getId()) 
     { 
      case R.id.butlogin: 
      { 
       //open login screen 
       Intent i = new Intent(this, login.class); 
       startActivity(i); 
       break; 
      } 
      case R.id.butrecordts: 
      { 
       break; 
      } 
      case R.id.butviewts: 
      { 
       break; 
      } 
      case R.id.butprojects: 
      { 
       break; 
      } 

     } 
    } 
} 
+0

謝謝你,這已經解決了這個問題。但是,一旦按下按鈕,應用程序就會停止響應。 –

+0

@HydarRoze在你的問題發佈錯誤logcat。 –

+0

這是問我是否已經在我的android清單中聲明瞭這個活動。我已經這樣做了。 –

4

您忘記在您的活動中實施onClickListener

實現它,然後試試:)

public class Menu extends Activity implements onClickListener 
+0

看到我的編輯answer.Just與您的代碼替換該行:) – AndroidLearner

+0

@HydarRoze如果我的回答對你有幫助,不要忘記接受和upvote :) :) – AndroidLearner

+0

張貼你的logcat :) – AndroidLearner

0

你剛纔忘了實現您的活動onClickListener

公共類菜單擴展活動實現OnClickListener {< ----看看這個行 ....... ..................... }

0

嘗試修改此行

View loginbutton = findViewById(R.id.butlogin); 

Button loginbutton = (Button)findViewById(R.id.butlogin); 
0
View.OnClickListener myhandler1 = new View.OnClickListener() { 
    public void onClick(View v) { 
    // the 1st button 
    } 
    } 
    View.OnClickListener myhandler2 = new View.OnClickListener() { 
    public void onClick(View v) { 
    //the 2nd button 
    } 
0

您必須聲明你的按鈕是這樣的:

Button loginbutton = (Button)findViewById(R.id.butlogin); 
    loginbutton.setOnClickListener(this); 

    Button recordbutton = (Button)findViewById(R.id.butrecordts); 
    recordbutton.setOnClickListener(this); 

    Button viewbutton = (Button)findViewById(R.id.butviewts); 
    viewbutton.setOnClickListener(this); 

    Button projectsbutton = (Button)findViewById(R.id.butprojects); 
    projectsbutton.setOnClickListener(this);