This question already has answers here:
What is a NullPointerException, and how do I fix it?

(12个答案)



findViewById returns null in fragment

(2个答案)



Null pointer Exception - findViewById()

(10个回答)


7个月前关闭。





我有一个问题,我有一个没有活动的布局中的按钮(没有类),该布局称为item_list_products。该按钮在那里,但是我想在HomeFragment中使用.setOnClickListener事件。有办法解决吗?因为这就是为什么它给了我错误。

Mi codigo: HomeFragment.class

       public class HomeFragment extends Fragment {
          private HomeViewModel homeViewModel;
          Button bttn_comprar;
          public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
          homeViewModel =
                ViewModelProviders.of(this).get(HomeViewModel.class);
          View root = inflater.inflate(R.layout.fragment_home, container, false);
          bttn_comprar = (Button) root.findViewById(R.id.comprarBttn);

          //This is where I get the error, since the button is in a different layout.
          bttn_comprar.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {

                     }
          });
        }

Mi codigo de layout: item_list_productos

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">



    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/idImagen"
            android:layout_width="wrap_content"
            android:src="@mipmap/ic_launcher"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:layout_marginRight="10dp"/>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/nombreId"
                android:layout_marginTop="10dp"
                android:layout_marginRight="10dp"
                android:text="Nombre producto"
                android:layout_marginBottom="5dp"
                android:textSize="20dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

            <TextView
                android:id="@+id/precioId"
                android:text="Precio"
                android:textSize="20dp"
                android:textColor="#000000"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
            <Button
                android:id="@+id/comprarBttn"
                android:layout_width="230dp"
                android:layout_height="35dp"
                android:textColor="#FFFFFF"
                android:background="#248761"
                android:text="Comprar"/>

        </LinearLayout>
    </LinearLayout>


</LinearLayout>

最佳答案

您正在尝试在不是片段布局的子视图的视图上调用onClicklisterner

public class HomeFragment extends Fragment {
      private HomeViewModel homeViewModel;
      Button bttn_comprar;
public View onCreateView(@NonNull LayoutInflater inflater,
                         ViewGroup container, Bundle savedInstanceState) {
      homeViewModel = ViewModelProviders.of(this).get(HomeViewModel.class);
      View root = inflater.inflate(R.layout.item_list_productos, container, false);

      bttn_comprar = (Button) root.findViewById(R.id.comprarBttn);

      bttn_comprar.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {

                 }
      });
    }


将片段布局更改为item_list_productos.xml,或将按钮comprarBttn添加到fragment_home.xml布局。

关于java - java.lang.NullPointerException:对空对象的引用为“void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58949178/

10-08 21:39