Android studio:按钮onClick()不起作用

时间:2018-02-22 10:53:27

标签: android button android-activity onclick

我的主Activity上有两个按钮,这两个按钮都应该导致另一个活动,但是当我按下我的按钮时,它不会改变任何东西。

我的清单中有三项活动:

 <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".UserActivity"
        android:label="@string/app_name">
    </activity>
    <activity
        android:name=".ModeratorActivity"
        android:label="@string/app_name">
    </activity>

主要活动中两个按钮的方法:

private void setUserTypeOnButtonClick(){
    Button userButton = findViewById(R.id.button_user);
    Button moderatorButton = findViewById(R.id.button_moderator);

    userButton.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            System.out.println("Clicked userbutton");
            Intent newActivity = new Intent(v.getContext(), UserActivity.class);
            startActivity(newActivity);
        }
    });


    moderatorButton.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            System.out.println("Clicked moderatorbutton");
            Intent newActivity = new Intent(v.getContext(), ModeratorActivity.class);
            startActivity(newActivity);
        }
    });
}

这是什么问题?我留下了什么吗?

编辑:

Full main activity

Full user activity

Full moderator activity

Full main layout

Full user layout

Full moderator layout

5 个答案:

答案 0 :(得分:2)

编辑解决方案只是为了 在setUserTypeOnButtonClick()方法

中调用onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
    System.out.println("Created activity_main");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setUserTypeOnButtonClick();
}

答案 1 :(得分:0)

您只需拨打WITH filter_values as ( SELECT 'bob' as val UNION SELECT 'sid' ) SELECT * FROM blah JOIN filter_values ON key LIKE '%'||val||'%' 方法

中的setUserTypeOnButtonClick()即可

答案 2 :(得分:0)

您忘记在setUserTypeOnButtonClick() setContentView()之后拨打onCreate()方法。

setContentView()确实使按钮可见,但没有发生点击侦听器绑定,因此按钮不执行任何操作。

答案 3 :(得分:0)

您忘了在onCreate()

中调用setUserTypeOnButtonClick()方法

答案 4 :(得分:0)

  • 您忘记调用方法getUserTypeOnButtonClick()。
  • ToggleButton无法转换为Button。
  • 还有ModeratorActivity和UserActivity OnBackPressed只需调用finish()。