我有一个问题,我有一个没有活动的布局中的按钮(无类),该布局称为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>
答案 0 :(得分:0)
您正试图在不是片段布局的子视图的视图上调用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 布局。