Android 如何在实现OnClickListener的类中将OnClickListener设置为button
我想将OnClickListener设置为我的按钮,以显示内部警报对话框。 我使用上下文作为参数,但它不起作用。每次我按下按钮,应用程序就会停止工作。这是我的代码。 问题按钮的顺序为警告对话框中显示的\u add.xmlAndroid 如何在实现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 =
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>