Java 如何从片段解析空对象引用
公共类RecycleServicewFragment扩展了片段{Java 如何从片段解析空对象引用,java,android,android-fragments,Java,Android,Android Fragments,公共类RecycleServicewFragment扩展了片段{ 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&l
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();
}
}
static final boolean GRID\u LAYOUT=false;
私有静态最终整数项目计数=10;
私人回收视图mRecyclerView;
专用回收器查看适配器mAdapter;
private List mContentItems=new ArrayList();
文本视图结果;
编辑文本操作;
国际关系;
公共静态RecycleServicewFragment newInstance(){
返回新的RecycleServicewFragment();
}
@凌驾
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
视图v=充气机。充气(R.layout.fragment\u recyclerview,container,false);
结果=(TextView)v.findViewById(R.id.result);
operant=(编辑文本)v.findviewbyd(R.id.operant);
operant.addTextChangedListener(新的TextWatcher(){
@凌驾
更改前的公共无效(CharSequence CharSequence,int i,int i1,int i2){
}
@凌驾
public void onTextChanged(字符序列、int start、int before、int count){
试一试{
res=Integer.parseInt(operant.getText().toString())*100;
result.setText(“+res”);
}捕获(数字格式){
e、 printStackTrace();
result.setText(“”);
}
}
@凌驾
public void PostTextChanged(可编辑){
}
});
返回v;
}
@凌驾
已创建视图上的公共void(视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
mRecyclerView=(RecyclerView)view.findviewbyd(R.id.RecyclerView);
RecyclerView.LayoutManager LayoutManager;
if(网格布局){
layoutManager=新的GridLayoutManager(getActivity(),2);
}否则{
layoutManager=新的LinearLayoutManager(getActivity());
}
mRecyclerView.setLayoutManager(layoutManager);
mRecyclerView.setHasFixedSize(true);
//现在就用这个
mRecyclerView.addItemDecoration(新材料viewPagerHeaderDecorator());
mAdapter=新的TestRecycleServiceAdapter(mContentItems);
//mAdapter=新的RecycleServiceWMaterialAdapter();
mRecyclerView.setAdapter(mAdapter);
{
对于(int i=0;i
}
尝试在空对象引用上调用虚拟方法“void android.widget.EditText.addTextChangedListener(android.text.TextWatcher)”
我遇到此错误将所有初始化移动到 onViewCreated(…)
我认为操作id在另一个布局文件中
检查fragment\u recyclerview.xml布局文件,确保您有id=operant的EditTextfragment\u recyclerview布局中是否有id为operant的编辑文本?该布局中有一个回收器视图,就是它。。。但有一个适配器类包含其他组件。如果result和operant是recycler视图的元素,则它们应该在视图保持器中初始化。看一看有关“回收器视图”实现的教程。您的实现完全错误。@SrikarReddy好的,谢谢,我会看一下的