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事件。有办法解决吗?因为这就是为什么它给了我错误。
将片段布局更改为item_list_productos.xml,或将按钮comprarBttn添加到fragment_home.xml布局。
(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