Android OnClick使每个新项目都失败
第一个帖子。我正在学习一些关于Android编程的课程,这些课程都是相当新的,但不是一个完全的新手。我很久以前就有编程方面的背景 出于某些奇怪的原因,旧项目的OnClick运行良好,但我今天创建的每个项目,无论是Genymotion还是AVD,OnClick都从未启动过,即使在我创建的以下简单示例中也是如此。 这是我正在处理的原始项目,我甚至不能点击按钮(好像前面有一个透明的东西) 如果有人能解释为什么当我打开基于22的旧项目时,所有东西都可以工作,但现在在23(16为向后)上运行OnClick不工作,那你就太好了。谢谢 布局:Android OnClick使每个新项目都失败,android,onclick,onclicklistener,Android,Onclick,Onclicklistener,第一个帖子。我正在学习一些关于Android编程的课程,这些课程都是相当新的,但不是一个完全的新手。我很久以前就有编程方面的背景 出于某些奇怪的原因,旧项目的OnClick运行良好,但我今天创建的每个项目,无论是Genymotion还是AVD,OnClick都从未启动过,即使在我创建的以下简单示例中也是如此。 这是我正在处理的原始项目,我甚至不能点击按钮(好像前面有一个透明的东西) 如果有人能解释为什么当我打开基于22的旧项目时,所有东西都可以工作,但现在在23(16为向后)上运行OnClic
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="ca.shaarable.planetxerox.admin_add_products_hardware">
<LinearLayout
android:orientation="vertical"
android:id="@+id/admin_add_printer_first"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.2">
<TextView
android:id="@+id/admin_add_printer_tv_name"
android:text="@string/admin_add_printer_tv_name"
android:textSize="12sp"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/admin_add_printer_et_name"
android:text="@string/admin_add_printer_et_name"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:id="@+id/admin_add_printer_second"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.65">
<TextView
android:id="@+id/admin_add_printer_tv_thumbnail"
android:text="@string/admin_add_printer_tv_thumbnail"
android:textStyle="italic"
android:layout_marginBottom="5dp"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/admin_add_printer_image"
android:src="@drawable/igen5"
android:layout_gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:id="@+id/admin_add_printer_third"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.15">
<LinearLayout
android:id="@+id/admin_add_printer_sublayout"
android:orientation="horizontal"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_weight="1"
android:layout_marginRight="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/admin_add_printer_CANCEL"
android:text="@string/admin_add_printer_CANCEL"
android:background="#F99F1C"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/admin_add_printer_ADD"
android:text="@string/admin_add_printer_ADD"
android:background="#2ABDBA"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
}
尝试添加
.setOnClickListener(此)代码>内部onCreate(…)方法
希望有此帮助问题在您的代码中
<Button
android:id="@+id/admin_add_printer_ADD"
android:text="@string/admin_add_printer_ADD"
android:background="#2ABDBA"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick" // add this line
/>
您缺少每个按钮的设置ClickListener(此)
功能
好的,谢谢您的帮助。成功了。:)但是我仍然不知道为什么我不能使用推荐的方式(Implements View.OnClickListener)。我不知道你说什么为什么我不能使用推荐的方式(Implements View.OnClickListener)
。你能解释一下吗?嗨,潘,谢谢你的帮助。我没有告诉xml布局onClick=“onClick”。@Shaare我认为我的方式比上面的anwser更适合处理onClick事件:)我希望我能记住一切。。。谢谢你,基舒,就这样!非常感谢。@KishuDroid当然这个解决方案会奏效,但这不是个好主意。这将使您的代码更难阅读和修改future@PhanVan Linh:android:onClick除了代码更少之外还有一个主要优势——它是布局资源的一部分。根据设备的当前配置,在运行时选择资源。UI的某些部分可能会使用相同布局的不同变体,具体取决于设备是否处于横向/纵向模式、屏幕大小是否不同等。在这种情况下,您可以在每个元素上使用onClick属性来适当地连接,而不是使用大量代码来确定运行时存在哪些元素。
protected void onCreate(Bundle savedInstanceState){
...
addBtn.setOnClickListener(this);
}
<Button
android:id="@+id/admin_add_printer_ADD"
android:text="@string/admin_add_printer_ADD"
android:background="#2ABDBA"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick" // add this line
/>