带按钮的CardView,不使用RecyclerView-Android

带按钮的CardView,不使用RecyclerView-Android,android,android-studio,Android,Android Studio,我试图使用CardView作为菜单的容器;卡片上填充了按钮。是否可以在不使用RecyclerView的情况下在每个按钮上实现单击侦听器 在创建期间、添加到CardView之前和添加到CardView之后,在按钮上应用单击侦听器不起作用。只有卡本身保持可单击状态在本例中,在cardview上添加了两个按钮,其中每个视图都有单独的单击侦听器。你可以试试这个- public class MainActivity extends AppCompatActivity implements View.OnC

我试图使用CardView作为菜单的容器;卡片上填充了按钮。是否可以在不使用RecyclerView的情况下在每个按钮上实现单击侦听器


在创建期间、添加到CardView之前和添加到CardView之后,在按钮上应用单击侦听器不起作用。只有卡本身保持可单击状态

在本例中,在cardview上添加了两个按钮,其中每个视图都有单独的单击侦听器。你可以试试这个-

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private String TAG = "MainActivity";
    Button btn_first, btn_second;
    CardView cardView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cardView = (CardView) findViewById(R.id.cardview);
        cardView.setOnClickListener(this);

        btn_first = (Button)findViewById(R.id.btn_first);
        btn_second = (Button)findViewById(R.id.btn_second);
        btn_first.setOnClickListener(this);
        btn_second.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btn_first:
                Toast.makeText(this, "First Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_second:
                Toast.makeText(this, "Second Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.cardview:
                Toast.makeText(this, "CardView", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

在本例中,在cardview上添加了两个按钮,其中每个视图都有单独的click listener。你可以试试这个-

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private String TAG = "MainActivity";
    Button btn_first, btn_second;
    CardView cardView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cardView = (CardView) findViewById(R.id.cardview);
        cardView.setOnClickListener(this);

        btn_first = (Button)findViewById(R.id.btn_first);
        btn_second = (Button)findViewById(R.id.btn_second);
        btn_first.setOnClickListener(this);
        btn_second.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btn_first:
                Toast.makeText(this, "First Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_second:
                Toast.makeText(this, "Second Button", Toast.LENGTH_SHORT).show();
                break;
            case R.id.cardview:
                Toast.makeText(this, "CardView", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

输入一些代码以便我们提供帮助是的,您可以使用cardview作为菜单项,但您应该使用布局而不是菜单。您需要为它们实现单独的单击。检查后:输入一些代码以便我们提供帮助是的,您可以使用cardview作为菜单项,但您应该使用布局而不是菜单。您需要为它们实现单独的单击。检查此项后:
Button button = (Button) findViewById(R.id.button);
        CardView cardView = (CardView) findViewById(R.id.card);


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(SplashActivity.this, "ButtonClicked", Toast.LENGTH_SHORT).show();
            }
        });

        cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(SplashActivity.this, "card clicked", Toast.LENGTH_SHORT).show();
            }
        });