Android 如何在实现OnClickListener的类中将OnClickListener设置为button

Android 如何在实现OnClickListener的类中将OnClickListener设置为button,android,android-studio,onclicklistener,Android,Android Studio,Onclicklistener,我想将OnClickListener设置为我的按钮,以显示内部警报对话框。 我使用上下文作为参数,但它不起作用。每次我按下按钮,应用程序就会停止工作。这是我的代码。 问题按钮的顺序为警告对话框中显示的\u add.xml public class OnOrderClickListener implements View.OnClickListener { Context context; @Override public void onClick(View v) { context =

我想将OnClickListener设置为我的按钮,以显示内部警报对话框。 我使用上下文作为参数,但它不起作用。每次我按下按钮,应用程序就会停止工作。这是我的代码。 问题按钮的顺序为警告对话框中显示的\u add.xml

public class OnOrderClickListener implements View.OnClickListener {
Context context;

@Override
public void onClick(View v) {
    context = v.getRootView().getContext();
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View addOrderForm = inflater.inflate(R.layout.order_add, null, false);
    EditText orderId = (EditText) addOrderForm.findViewById(R.id.orderIdentifierEditText);
    Button addItemToOrder = (Button) addOrderForm.findViewById(R.id.addItem);
    addItemToOrder.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(v.getContext(),OnClickForAddProductToOrder.class);
            v.getContext().startActivity(intent);
        }
    });
    new AlertDialog.Builder(context)
            .setView(addOrderForm)
            .setTitle(R.string.order)
            .setPositiveButton(R.string.add_product_positive_button, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            }).show();
}
}

日志:

致命异常:主 流程:com.hwp.myprototype,PID:10753 android.content.ActivityNotFoundException:无法找到显式 活动课 {com.hwp.myprototype/com.hwp.myprototype.OnClickForAddProductToOrder}; 您是否在AndroidManifest.xml中声明了此活动? 在 android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1854) 在 execStartActivity(Instrumentation.java:1545) 在android.app.Activity.startActivityForResult(Activity.java:4283)上


我希望有人能帮我解决这个问题。提前感谢。

请在清单文件中添加OnClickForAddProductToOrder活动。

在清单的应用程序标记中添加您的活动(OnClickForAddProductToOrder)

例如:

<activity android:name="OnClickForAddProductToOrder" >

首先将您的活动添加到清单文件:

<application
    ...>

    <activity
        android:name=".OnOrderClickListener" />

</application>
但是,如果要实现View.OnClickListener,则无需在addItemToOrder.setOnClickListener()中使用new View.OnClickListener()。你要做的是:

Button addItemToOrder = (Button) addOrderForm.findViewById(R.id.addItem);
addItemToOrder.setOnClickListener(this);
...

@Override
public void onClick(View v) {
    int id = v.getId();
    switch (id) {
        case R.id.addItem:
            Intent intent = new Intent(v.getContext(),OnClickForAddProductToOrder.class);
            v.getContext().startActivity(intent);
            break;
        default:
            break;
    }
}

问题在于清单OnClickForAddProductToOrder中未定义活动

因此,在清单中添加以下代码

<activity
 android:name=".OnClickForAddProductToOrder"
 android:label="Add Products"
 android:theme="@style/AppTheme.NoActionBar"></activity>


发布错误..使用OnOrderClickListener.this代替context@DivyeshPatel“我已经试过了,但在menifest中将ClickforAddProductToOrder活动放在上面不起作用。”JohnJoe发布
<activity
 android:name=".OnClickForAddProductToOrder"
 android:label="Add Products"
 android:theme="@style/AppTheme.NoActionBar"></activity>