实现 View.OnClickLister 后程序崩溃

program crash after implement View.OnClickLister

提问人:Ahmad Zulhilmi Aliudin 提问时间:10/30/2023 更新时间:10/30/2023 访问量:10

问:

刚开始学习使用android studio,尝试制作有关下单的程序。在我的 MainActivity 界面中,当我单击结帐按钮时,它会将我带到 OrderDetails 界面/布局。 但是在我将 View.OnClickLister() 实现到我的 OrderDetails 后,程序在我单击结帐后崩溃,它不再将我带到 OrderDetails 接口。

MY MainActivity 代码

package com.example.mycafeapp_a200604;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    Button btnAdd,btnMinus,btnCheckOut;
    TextView tvQuantity;
    EditText etName;

    int quantity;


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

        btnAdd = findViewById(R.id.btn_add);
        btnMinus = findViewById(R.id.btn_minus);
        btnCheckOut = findViewById(R.id.btn_checkout);
        tvQuantity = findViewById(R.id.tv_quantity);
        etName = findViewById(R.id.et_name);

        quantity = 1;

        btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                quantity++;
                tvQuantity.setText(""+quantity);

            }
        });

        btnMinus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                quantity--;
                tvQuantity.setText(""+quantity);

            }
        });

        btnCheckOut.setOnClickListener(new View.OnClickListener() {
            String name;

            @Override
            public void onClick(View v) {
                name = etName.getText().toString();
                Toast.makeText(MainActivity.this,"Thank You " + name + " for order: " + quantity + " Milo Es.",Toast.LENGTH_SHORT).show();

                Intent intent = new Intent(MainActivity.this, OrderDetailActivity.class);
                 intent.putExtra("quantity",quantity);
                 intent.putExtra("name",name);

                startActivity(intent);

            }
        });

    }
}

My OrderDetails 代码

package com.example.mycafeapp_a200604;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

public class OrderDetailActivity extends AppCompatActivity implements View.OnClickListener{
    ImageButton imgBtnCall, imgBtnEmail, imgBtnWeb;
    TextView tvName, tvQuantity;
    String name;
    int quantity;

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

        imgBtnCall = findViewById(R.id.img_btn_call_order_act);
        imgBtnCall = findViewById(R.id.img_btn_email_order_act);
        imgBtnCall = findViewById(R.id.img_btn_web_order_act);

        tvName = findViewById(R.id.tv_name_order_act);
        tvQuantity = findViewById(R.id.tv_quantity_order_act);

        Intent intent = getIntent();
        quantity = intent.getIntExtra("quantity", 0);
        name = intent.getStringExtra("name");

        tvName.setText(name);
        tvQuantity.setText("" + quantity);

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        imgBtnCall.setOnClickListener(this);
        imgBtnEmail.setOnClickListener(this);
        imgBtnWeb.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == R.id.img_btn_call_order_act) {

            Intent callIntent = new Intent(Intent.ACTION_DIAL);
            callIntent.setData(Uri.parse("tel: 01159447638"));

            if(callIntent.resolveActivity(getPackageManager()) !=null) {
                startActivity(callIntent);
            }
            else {
                Toast.makeText(OrderDetailActivity.this,"Sorry no app can handle this action and data", Toast.LENGTH_SHORT).show();
            }

        } else if (id == R.id.img_btn_email_order_act) {
            Uri webpage = Uri.parse("http://www.google.com");
            Intent webIntent = new Intent(Intent.ACTION_VIEW,webpage);

            if(webIntent.resolveActivity(getPackageManager()) !=null) {
                startActivity(webIntent);
            }

            else {
                Toast.makeText(OrderDetailActivity.this,"Sorry no app can handle this action and data", Toast.LENGTH_SHORT).show();
            }




        } else if (id == R.id.img_btn_web_order_act) {
            Toast.makeText(OrderDetailActivity.this, "Image Button Web", Toast.LENGTH_SHORT).show();
        }
    }
    }

为什么我的程序崩溃了,我该如何修复它

按钮 onclicklistener start-activity implements

评论


答: 暂无答案