Android 安卓:按钮的OnClick方法不';不回答
直到现在我才有这个问题。我不知道这里有什么问题,因为在同一个布局中,我有几个按钮,只有LinearLayout中的按钮不会响应 这是我的按钮在单击(编辑)时不响应的布局。:Android 安卓:按钮的OnClick方法不';不回答,android,Android,直到现在我才有这个问题。我不知道这里有什么问题,因为在同一个布局中,我有几个按钮,只有LinearLayout中的按钮不会响应 这是我的按钮在单击(编辑)时不响应的布局。: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollView1" an
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:background="@drawable/texture"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="600dp"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<EditText
android:id="@+id/input_first_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:ems="10"
android:inputType="text"
android:textSize="@dimen/text_size">
<requestFocus />
</EditText>
<EditText
android:id="@+id/input_last_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/input_first_name"
android:ems="10"
android:inputType="text"
android:textSize="@dimen/text_size" />
<EditText
android:id="@+id/input_age"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/input_last_name"
android:ems="10"
android:inputType="number"
android:textSize="@dimen/text_size" />
<ImageView
android:id="@+id/profile_image"
android:layout_width="140dp"
android:layout_height="140dp"
android:layout_below="@+id/input_age"
android:layout_centerHorizontal="true"
android:src="@drawable/add" />
<Button
android:id="@+id/save_button"
style="@style/MyCustomButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/slider"
android:layout_toLeftOf="@+id/edit_button"
android:onClick="run"
android:text="@string/save_button" />
<Button
android:id="@+id/edit_button"
style="@style/MyCustomButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/slider"
android:text="@string/edit_button" />
<Button
android:id="@+id/delete_button"
style="@style/MyCustomButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/slider"
android:layout_toLeftOf="@+id/save_button"
android:layout_toStartOf="@+id/save_button"
android:text="@string/delete_button" />
<Button
android:id="@+id/edit_birthday_date"
style="@style/MyCustomButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/profile_image"
android:layout_centerHorizontal="true" />
<LinearLayout
android:id="@+id/button_container1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/cake_image"
android:layout_marginTop="10dp"
android:clickable="true"
android:weightSum="3"
android:orientation="horizontal">
<Button
android:id="@+id/button_movie"
style="@style/MyCustomButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1" />
<Button
android:id="@+id/button_books"
style="@style/MyCustomButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"/>
<Button
android:id="@+id/button_tech"
style="@style/MyCustomButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:id="@+id/button_container2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/button_container1"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:weightSum="3"
android:clickable="true">
<Button
android:id="@+id/button_body_care"
style="@style/MyCustomButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"/>
<Button
android:id="@+id/button_clothes"
style="@style/MyCustomButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1" />
<Button
android:id="@+id/button_accessories"
style="@style/MyCustomButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:id="@+id/button_container3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/button_container2"
android:layout_marginTop="10dp"
android:clickable="true"
android:orientation="horizontal">
<Button
android:id="@+id/button_games"
style="@style/MyCustomButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/edit_button"
android:layout_alignTop="@+id/slider"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
<ImageView
android:id="@+id/cake_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignStart="@+id/edit_birthday_date"
android:layout_below="@+id/edit_birthday_date"
android:layout_marginTop="20dp"
android:src="@drawable/birthday_cake" />
<TextView
android:id="@+id/turning_age"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/cake_image"
android:layout_toEndOf="@+id/cake_image"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<com.daimajia.slider.library.SliderLayout
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@+id/cake_image" />
</RelativeLayout>
</ScrollView>
在这里,除了onClick,一切都正常。我没有错。单击“我的按钮”时没有响应。请尝试在线性布局中将
android:visibility=“gone”
更改为android:visibility=“visible”
然后再次将
android:clickable=“true”
添加到线性布局中尝试将线性布局中的android:visibility=“gone”
更改为android:visibility=“visible”
然后再次将
android:clickable=“true”
添加到您的线性布局中尝试将setOnClickListener置于if条件之外。尝试将setOnClickListener置于if条件之外。您在编码时存在大量冗余,并有引入错误的风险,其中一些错误可能不会立即显现出来。下面是您发布的代码示例的更精简、更清晰的版本,使用一个onClick方法来处理if(){else}条件
buttonCategoryMovie.setText("MOVIES");
buttonCategoryMovie.setTextColor(Color.parseColor("#ffffff"));
buttonCategoryMovie.setCompoundDrawablesWithIntrinsicBounds(
getMovieCategory.equals("movies") ? R.drawable.ic_cancelar : R.drawable.ic_add, 0,0,0
);
buttonCategoryMovie.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (getMovieCategory.equals("movies")) {
String movies = "movies";
dbh.updateCategoryMovies(birthdayId, movies);
} else {
dbh.deleteMovies(getMovieCategory);
}
}
});
编辑1:我错误地遗漏了您的String movies=“movies”
,并将其重新添加。如果您只想使用这个字符串一次,将它作为参数传递给dbh.updateCategoryMovies(birthdayId,movies)
,那么您只需调用dbh.updateCategoryMovies(birthdayId,movies)
并删除String movies=“movies”
编辑2:在没有看到全部源代码的情况下,我不知道您是否在某处更改了getMovieCategory
的值。如果没有,那么下面的示例将在每次单击按钮时更改它(一旦你启动应用程序测试样本,你的按钮CategoryMovie
将是一个通用按钮;一旦你开始点击该按钮,它应该在显示你的R.drawable.ic_cancelar
和R.drawable.ic_添加
资源之间切换。如果该按钮在这两个drawable之间切换,那么你至少知道utton实际上正在接收onClick
请记住,如果每次单击时getMovieCategory
的值都没有改变,则您的按钮将始终只执行一组onClick操作,看起来什么都没有发生
如果它像我描述的那样对你有效,那么你就走在路上了;)
。您正在使用大量冗余进行编码,并有引入错误的风险,其中一些错误可能不会立即显现。下面是您发布的代码示例的更精简、更清晰的版本,使用一个onClick方法来处理if(){else}条件
buttonCategoryMovie.setText("MOVIES");
buttonCategoryMovie.setTextColor(Color.parseColor("#ffffff"));
buttonCategoryMovie.setCompoundDrawablesWithIntrinsicBounds(
getMovieCategory.equals("movies") ? R.drawable.ic_cancelar : R.drawable.ic_add, 0,0,0
);
buttonCategoryMovie.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (getMovieCategory.equals("movies")) {
String movies = "movies";
dbh.updateCategoryMovies(birthdayId, movies);
} else {
dbh.deleteMovies(getMovieCategory);
}
}
});
编辑1:我错误地遗漏了您的String movies=“movies”
并将其重新添加。如果您只想使用此字符串一次,将其作为dbh.updateCategoryMovies(birthdayId,movies)
的参数传递,那么您只需调用dbh.updateCategoryMovies(birthdayId,movies)
和删除String movies=“movies”
编辑2:在没有看到整个源代码的情况下,我不知道您是否在某个地方更改了getMovieCategory
的值。如果不是,则下面的示例将在每次单击按钮时更改它(一旦你启动应用程序测试样本,你的按钮CategoryMovie
将是一个通用按钮;一旦你开始点击该按钮,它应该在显示你的R.drawable.ic_cancelar
和R.drawable.ic_添加
资源之间切换。如果该按钮在这两个drawable之间切换,那么你至少知道utton实际上正在接收onClick
请记住,如果每次单击时getMovieCategory
的值都没有改变,则您的按钮将始终只执行一组onClick操作,看起来什么都没有发生
如果它像我描述的那样对你有效,那么你就走在路上了;)
发布活动的代码。两个侦听器都不工作?在此处发布活动的完整源代码。建议:将android:weight\u sum=3添加到线性布局中。伙计们,这仍然不工作,我的意思是按钮在单击时没有响应,没有错误。我已经尝试了您建议我的所有内容。在if条件旁边设置onClickListener,设置ting linearLayouts clickable state为true,但注意。发布活动的代码。两个侦听器都不工作?在此处发布活动的完整源代码。建议:将android:weight\u sum=3添加到你的linearLayouts。伙计们,这仍然不工作,我的意思是按钮在单击时没有响应,没有错误。我已经尝试了你建议我的一切。在if条件旁边设置onClickListener,将linearLayouts clickable state设置为true,但注意。在执行某些代码时,我以编程方式更改了该设置,因为当用户选择编辑按钮时,我不需要这些按钮可见。@DusanDimitrijevic然后按照M的建议在if语句之外处理onClick侦听器FPI在执行某些代码时以编程方式更改了这一点,因为当用户选择“编辑”按钮时,我不需要这些按钮可见。@DusanDimitrijevic然后按照MFPBC的建议在if语句之外处理onClick侦听器,但我需要在if条件下使用它,因为我有两条语句,其中一条条件下我想执行某些操作是true,第二个是我想用onClickListener做其他事情的地方。你应该使用同一个侦听器,检查你的
onClick
方法内部要做什么。但是我需要在if条件下使用它,因为我有两个语句,其中一个条件为true,我想做一些事情;第二个是我想用onClickListener做其他事情的地方应该使用同一个监听器,并检查您的onClick
方法内部的操作。我已经解决了获取按钮o的问题
buttonCategoryMovie.setText("MOVIES");
buttonCategoryMovie.setTextColor(Color.parseColor("#ffffff"));
buttonCategoryMovie.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (getMovieCategory.equals("movies")) {
getMoviesCategory = "not movies"; // this is here just to test
buttonCategoryMovie.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_cancelar, 0, 0, 0);
String movies = "movies";
dbh.updateCategoryMovies(birthdayId, movies);
} else {
getMoviesCategory = "movies"; // this is here just to test
buttonCategoryMovie.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_add, 0, 0, 0);
dbh.deleteMovies(getMovieCategory);
}
}
});