我想测试按钮是否可以在我的应用程序上使用。 它们放在我的第一个片段中。当我单击“全部”按钮时,它根本不响应。我的主要目标是加载片段,但在这种情况下,我只是将System.out.println放入测试我的按钮是否可以正常工作,但显然不起作用。
我试图创建一个新项目并且它可以正常工作,但是仅在Main Activity中,我希望在我的Exercises_Tab片段中使用它。
我根本看不到任何错误日志。
public class Exercises_Tab extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View Exercises = inflater.inflate(R.layout.fragment_1,container,false);
Button allbtn = (Button) Exercises.findViewById(R.id.all_button);
allbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("Test");
}
});
return Exercises;
}
}
我的XML:
<LinearLayout
android:id="@+id/Linear_Layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text= " Muscles "
android:background="#000000"
android:textColor="#ffffff"
android:textSize="25dp"
android:layout_marginTop="3dp"/>
<HorizontalScrollView
android:id="@+id/scrollViewhorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="-20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"
android:background="#fafafa"
android:text="All"
android:textColor="#696969"
android:id="@+id/all_button"/>
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:text="Button 1"
android:id="@+id/second_button"
android:background="#fafafa"
android:textColor="#696969"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"/>
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"
android:background="#fafafa"
android:text="Button 1"
android:textColor="#696969" />
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:text="Button 1"
android:background="#fafafa"
android:textColor="#696969"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"/>
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:text="Button 1"
android:background="#fafafa"
android:textColor="#696969"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"/>
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:text="Button 1"
android:background="#fafafa"
android:textColor="#696969"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"/>
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:text="Button 1"
android:background="#fafafa"
android:textColor="#696969"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"/>
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:text="Button 1"
android:background="#fafafa"
android:textColor="#696969"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"/>
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:text="Button 1"
android:background="#fafafa"
android:textColor="#696969"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"/>
<Button
android:layout_width="80dp"
android:layout_height="40dp"
android:text="Button 1"
android:background="#fafafa"
android:textColor="#696969"
android:layout_margin="-20dp"
android:layout_marginRight="2dp"/>
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
<FrameLayout
android:id="@+id/Frame_Layout"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_gravity="center"
android:layout_centerHorizontal="true"
android:background="@color/colorPrimary"
android:layout_below="@+id/Linear_Layout"
>
</FrameLayout>
答案 0 :(得分:0)
在此函数内执行整个代码的片段,因为它已经引用了xml视图。
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Button allbtn = (Button) view.findViewById(R.id.all_button);
allbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("Test");
}
});
}
答案 1 :(得分:0)
您可以像这样实现点击监听器
public class Exercises_Tab extends Fragment implements OnClickListener {
Button allbtn ;
@Override
public View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedinstanceState) {
View Exercises = inflater.inflate(R.layout.fragment_1,container,false);
allbtn = (Button) Exercises.findViewById(R.id.all_button);
allbtn .setOnClickListener(this);
return Exercises ;
}
@Override
public void onClick(View v) {
// implements your things
}
}
我更喜欢这样做,因为它使您的代码更具可读性。