Java 在活动独立类中使用,该类在Android Studio上创建带有set-onClickListeners的按钮

Java 在活动独立类中使用,该类在Android Studio上创建带有set-onClickListeners的按钮,java,android,android-studio,kotlin,onclicklistener,Java,Android,Android Studio,Kotlin,Onclicklistener,我需要建立6个活动屏幕和自定义导航标签在他们下面的一个酒吧应用程序(都必须有图标和标签)。我将导航按钮作为单独的布局,并将它们包含在每个活动布局的底部,以避免多次重写同一代码。接下来,我想让它们在每个活动中都可以点击,并设置侦听器。首先,我在每个活动中手动设置侦听器,如: val navTabA = findViewById<Button>(R.id.tab_A) navTabA.setBackgroundResource(R.drawable.nav_button_acti

我需要建立6个活动屏幕和自定义导航标签在他们下面的一个酒吧应用程序(都必须有图标和标签)。我将导航按钮作为单独的布局,并将它们包含在每个活动布局的底部,以避免多次重写同一代码。接下来,我想让它们在每个活动中都可以点击,并设置侦听器。首先,我在每个活动中手动设置侦听器,如:

val navTabA = findViewById<Button>(R.id.tab_A)
    navTabA.setBackgroundResource(R.drawable.nav_button_active)
    navTabA.setOnClickListener {
        val intent = Intent(applicationContext, A_Activity::class.java)
        startActivity(intent)
    }
... 5 more ...

但在这种情况下,按钮是不可单击的(对单击和不单击动画没有任何影响)。使用此类类的正确方法是什么?

您应该检查片段。无论如何,您的A_活动应该扩展NavHelper。您的活动需要扩展NavHelper<代码>A类活动:NavHelper()
package com.example.app

import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.View
import android.widget.Button

class NavHelper
    : AppCompatActivity(), View.OnClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val navTabA = findViewById<Button>(R.id.tab_A) 
        navTabA.setOnClickListener(this)
    }

    override fun onClick(v: View) {
        when(v.id) {
            R.id.tab_A -> startActivity(Intent(applicationContext, A_Activity::class.java))
            }
        }

    }
package com.example.app

import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView

class A_Activity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_A)
        setTitle(R.string.A_Activity_label)

        NavHelper()
}