简体   繁体   中英

setOnClickListener button doesn't work Android studio

I'm new in java and I have tried to make a food app in android studio. I have a bar in app and when I click on cart my app is crashing.

Here is my MainActivity

public class MainActivity extends AppCompatActivity {
private RecyclerView.Adapter adapter, adapter2;
private RecyclerView recyclerViewCategotyList, recyclerViewPopularList;

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

    recyclerViewCategoty();
    recyclerViewPopular();
    bottomNavigation();
}

private void bottomNavigation() {
    LinearLayout homeBtn=findViewById(R.id.homeBtn);
    LinearLayout cartBtn=findViewById(R.id.cartBtn);

    homeBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(MainActivity.this,MainActivity.class));
        }
    });

    cartBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           startActivity(new Intent(MainActivity.this,CartActivity.class));
        }
    });
} 

And I have this error: at com.example.food.Activity.MainActivity$2.onClick(MainActivity.java:48)

This is CartActivity

public class CartActivity extends AppCompatActivity {
private RecyclerView.Adapter adapter;
private RecyclerView recyclerViewList;
private ManagementCart managementCart;
private TextView totalFeeTxt, taxTxt, deliveryTxt, totalTxt, emptyTxt;
private double tax;
private ScrollView scrollView;

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

    managementCart = new ManagementCart(this);

    initView();
    initList();
    bottomNavigation();
    calculateCard();
}

private void bottomNavigation() {
    LinearLayout homeBtn = findViewById(R.id.homeBtn);
    LinearLayout cartBtn = findViewById(R.id.cartBtn);

    homeBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(CartActivity.this, MainActivity.class));
        }
    });

    cartBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(CartActivity.this, MainActivity.class));
        }
    });
} 

I don't know what's wrong and why my setOnClickListener doesn't work.

Thank you.

I think your button R.id.homeBtn is not LinearLayout, can you show your xml file?

If your buttons are Button classes, try this

private void bottomNavigation() {
    Button homeBtn = findViewById(R.id.homeBtn);
    Button cartBtn = findViewById(R.id.cartBtn);

    homeBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(CartActivity.this, MainActivity.class));
        }
    });

    cartBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(CartActivity.this, MainActivity.class));
        }
    });
} 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM