在一个活动中进行合并和片段



我正在向我的菜单添加片段.....现在其中一个菜单片段是列表视图,我需要同时使用 AppcompatActivity 和片段类,这不可能同时扩展两者

错误在屏幕截图中

public class friendjava extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.friends, container, false);

final ListView list = (ListView) findViewById(R.id.listview1);
final ArrayList<String> mylist = new ArrayList<>();
mylist.add("wisdom");
mylist.add("favour");
mylist.add("faith");
mylist.add("chisom");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mylist);
list.setAdapter(arrayAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),mylist.get(position),Toast.LENGTH_SHORT).show();
}
});
}
}

错误在屏幕截图中这是错误屏幕截图

这是一个片段。片段与活动是分开的。您必须将其绑定到活动。findViewById()方法需要绑定到活动的视图。 首先获取对视图对象的视图引用。

public class friendjava extends Fragment {
private View view;
private ListView list;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.friends, container, false);

list = view.findViewById(R.id.listview1);
final ArrayList<String> mylist = new ArrayList<>();
mylist.add("wisdom");
mylist.add("favour");
mylist.add("faith");
mylist.add("chisom");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mylist);
list.setAdapter(arrayAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),mylist.get(position),Toast.LENGTH_SHORT).show();
}
});
}
return view;
}

注意视图的使用方式和最终返回的方式。

尝试更改 final ListView list = (ListView( findViewById(R.id.listview1(;

到 final ListView list = findViewById(R.id.listview1(;

然后运行程序并检查日志猫

最新更新