【问题标题】:Button Click in Coordinator Layout not working协调器布局中的按钮单击不起作用
【发布时间】:2017-07-29 03:55:12
【问题描述】:

我在相对布局中放置了一个坐标布局。协调器布局由两个按钮组成。我设计了常用的onclick功能,但按钮似乎没有被点击。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:id="@+id/relativeLayoutMain"
    android:layout_margin="0dp"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="com.example.shaby.payshare.WorkPageOneFragment">

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/add1"
            android:layout_gravity="bottom|right"
            android:text="ADDBene"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/add2"
            android:layout_gravity="bottom|left"
            android:text="AddItem"/>
    </android.support.design.widget.CoordinatorLayout>



</RelativeLayout>

Java 文件部分为

buttonAddB= (Button)view.findViewById(R.id.add1);


        buttonAddB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getContext(), "Hi", Toast.LENGTH_LONG).show();


            }
        });

问题是 1) 我在做正确的事吗? 2)如果是,那么为什么按钮不起作用? 帮助。

【问题讨论】:

  • 请发布一个完整代码示例。这意味着你必须有一个类和一个方法,就像你正在编译的实际代码一样。这不是意味着发布您的整个代码。您只需为此处显示的代码提供周围的类和方法。我假设这段代码来自onCreate(),但你需要证明我才能确定。您还应该包括 super() 和 setContentView() 行。
  • 另外,请解释一下“不工作”是什么意思。当你点击按钮时会发生什么?你希望发生什么?
  • 其他代码与此无关,这就是我发布的原因。这个java代码在 onCreateView(...) 。为简单起见,我编辑了帖子,相信我这里不需要其他部分。
  • 并且不工作是指视图已成功创建但是当我单击按钮时没有生成吐司并且按钮没有显示按钮按下效果。
  • 请重新阅读我的第一条评论并按要求编辑您的问题。我很感激您试图将您的代码保持在最低限度。但是,您已经走得太远了,并且遗漏了帮助您所需的代码。例如,您的问题并不是说您正在使用片段。这是一个重要的细节,可以通过 class MyFragment extends Fragment 之类的方式轻松显示在您的代码中。

标签: android android-layout button android-coordinatorlayout buttonclick


【解决方案1】:

两个想法:

1) 检查view 在buttonAddB= (Button)view.findViewById(R.id.add1) 中的内容,以及它是否指代您认为它指代的内容;

2)你没有说当事情失败时会发生什么,所以我猜这是一个 NPE。尝试将 Toast.makeText(getContext(), "Hi", Toast.LENGTH_LONG).show() 更改为 Toast.makeText(v.getContext(), "Hi", Toast.LENGTH_LONG).show() 以查看是否有效。 getContext() 可能返回 null。

如果这些都不能解决问题,请发布有关失败的更多信息。

【讨论】:

  • 没有显示任何错误。正如我所想的那样,它的视图看起来很完美,但是按下按钮没有任何效果。
  • 我怀疑按钮按下事件是否发生。
  • 我已经给出了完整的xml布局。
  • 是的,我试过了。但是我在单独的代码中尝试了它,因为我之前更改了很多布局。在单独的代码中,这不是问题,一切都运行顺利。我不知道发生了什么,那么我的动态布局可能与按钮重叠。无论如何谢谢你的帮助。
猜你喜欢
  • 2015-08-14
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
相关资源
最近更新 更多