Не могу начать деятельность с фрагмента - PullRequest
0 голосов
/ 01 октября 2018

Пытался запустить действие из фрагмента, но он не работает, и я не могу найти проблему, и в сообществе нет ответа на другие вопросы, сработавшие, когда щелчки в tn (button7) ничего не происходит, пробовал в 2 эмуляторах иhuawei phone

** sst.java (фрагмент) **

public class sst extends Fragment {
Button btn ;
@Override
public void onCreate( Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Toast.makeText(getContext(),"اختر مادة الكتاب",Toast.LENGTH_SHORT).show();

}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_sst, container, false);
    btn = (Button) v.findViewById(R.id.button7);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getActivity(), BooksExploreActivity.class) ;
            intent.putExtra("subj" , "3olomTabe3ya") ;
            getActivity().startActivity(intent);
        }
    });
    return inflater.inflate(R.layout.fragment_sst, container, false);
}

}

фрагмент_ст.xml

<?xml version="1.0" encoding="utf-8"?>

<TextView
    android:id="@+id/textView19"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="8dp"
    android:fontFamily="@font/monadi"
    android:text="اختر مادة الكتاب"
    android:textColor="@color/colorPrimary"
    android:textSize="24dp" />

<Button
    android:id="@+id/button7"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button13"
    android:layout_alignStart="@+id/button13"
    android:layout_below="@+id/textView19"
    android:layout_marginTop="8dp"
    android:background="@drawable/fragmentsbutton"
    android:text="العلوم الطبيعية"
    android:textColor="#fff"
    android:textSize="19dp"
    />

<Button
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button7"
    android:layout_alignStart="@+id/button7"
    android:layout_below="@+id/button7"
    android:layout_marginTop="19dp"
    android:background="@drawable/fragmentsbutton"
    android:text="الرياضيات"
    android:textColor="#fff"
    android:textSize="18dp"
    android:id="@+id/button8" />
    </RelativeLayout>
    </android.support.v4.widget.NestedScrollView>

И спасибо.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

посмотрите на проблему в том, что вы делаете логику с View v, но затем вы возвращаете другую, тогда вы должны изменить это:

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_sst, container, false);
    btn = (Button) v.findViewById(R.id.button7);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getActivity(), BooksExploreActivity.class) ;
            intent.putExtra("subj" , "3olomTabe3ya") ;
            getActivity().startActivity(intent);
        }
    });
    return inflater.inflate(R.layout.fragment_sst, container, false); // change this
}

на:

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_sst, container, false);
    btn = (Button) v.findViewById(R.id.button7);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getActivity(), BooksExploreActivity.class) ;
            intent.putExtra("subj" , "3olomTabe3ya") ;
            getActivity().startActivity(intent);
        }
    });
    return v; // here is where the change is
}
0 голосов
/ 01 октября 2018

Изменить

return inflater.inflate(R.layout.fragment_sst, container, false);

с

return v;

С помощью вашего решения вы возвращаете исходный вид без «настраиваемого действия» на кнопке.

...