公共类RecyclerViewFragment扩展了Fragment {
static final boolean GRID_LAYOUT = false;
private static final int ITEM_COUNT = 10;
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private List<Object> mContentItems = new ArrayList<>();
TextView result;
EditText operant;
int res;
public static RecyclerViewFragment newInstance() {
return new RecyclerViewFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_recyclerview, container, false);
result = (TextView) v.findViewById(R.id.result);
operant = (EditText) v.findViewById(R.id.operant);
operant.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
try {
res = Integer.parseInt(operant.getText().toString()) * 100;
result.setText("" + res);
} catch (NumberFormatException e) {
e.printStackTrace();
result.setText("");
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
return v;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
RecyclerView.LayoutManager layoutManager;
if (GRID_LAYOUT) {
layoutManager = new GridLayoutManager(getActivity(), 2);
} else {
layoutManager = new LinearLayoutManager(getActivity());
}
mRecyclerView.setLayoutManager(layoutManager);
mRecyclerView.setHasFixedSize(true);
//Use this now
mRecyclerView.addItemDecoration(new MaterialViewPagerHeaderDecorator());
mAdapter = new TestRecyclerViewAdapter(mContentItems);
//mAdapter = new RecyclerViewMaterialAdapter();
mRecyclerView.setAdapter(mAdapter);
{
for (int i = 0; i < ITEM_COUNT; ++i) {
mContentItems.add(new Object());
}
mAdapter.notifyDataSetChanged();
}
}
}
尝试在空对象引用上调用虚方法'void android.widget.EditText.addTextChangedListener(android.text.TextWatcher)' 我收到此错误
答案 0 :(得分:0)
将所有初始化移至
onViewCreated(...)
答案 1 :(得分:0)
我认为operant id在另一个布局文件中 检查您的fragment_recyclerview.xml布局文件,并确保您有一个带有id = operant
的EditText