Как выделить активность фрагмента в Android при условии - PullRequest
0 голосов
/ 02 июня 2018

Я хочу выделить активность фрагмента при некоторых условиях, я пытаюсь установить флаг в классе pojo и проверять каждый раз, когда пытаюсь выделить действие серым.

Я не знаю, где именно логикадолжны быть размещены.Я попытался поместить его в метод onCreateView (), но он дал мне исключение нулевого указателя.

Пожалуйста, найдите код ниже для справки.

@SuppressLint("ValidFragment")
public class QuizTab extends Fragment {

private static final String TAG = "QuizTab";
RecyclerView recyclerView;
View view;
LinearLayout linearLayout;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.quiztab, container, false);
    recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);

    if(flag){
       grey out logic ---- not working
    }

    getQuizContent();
    setupRecyclerView(recyclerView);
    return view;
}


private void setupRecyclerView(RecyclerView recyclerView) {
    recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext()));
    recyclerView.setAdapter(new SimpleStringRecyclerViewAdapter(getActivity()));
}

public class SimpleStringRecyclerViewAdapter extends RecyclerView.Adapter<SimpleStringRecyclerViewAdapter.ViewHolder> {
    private Context mContext;

    public class ViewHolder extends RecyclerView.ViewHolder {

        public final LinearLayout mLinearlayout;

        public ViewHolder(View view) {
            super(view);
            mLinearlayout = (LinearLayout) view.findViewById(R.id.mcq);
        }

    }


    public SimpleStringRecyclerViewAdapter(Context context) {
        mContext = context;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.quiztab_mcq, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {


            }
    @Override
    public int getItemCount() {
        return 1;
    }
}

}

1 Ответ

0 голосов
/ 02 июня 2018

LinearLayout в этом случае является родителем фрагмента, который я пытался нарисовать фрагмент, но ошибка, поэтому я сделал что-то подобное

if(flag){
    LinearLayout layout = view.findViewById(R.id.parentOffragment);
    layout.setBackgroundColor(Color.GRAY);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...