2013-01-09 157 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);