简体   繁体   English

appcompat 和片段在一个活动中

[英]appcompat and fragment in one activity

I'm adding fragments to my menu.....now one of the menufragments is a listview and i need to use both appcompatactivity and fragment class which isn't possible to extends both我正在向我的菜单添加片段.....现在其中一个 menufragments 是列表视图,我需要同时使用 appcompatactivity 和片段 class 这两者都无法扩展

The error are in the Screenshots错误在屏幕截图中

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();

            }
        });

    }
}

the error are in screenshot this is error screenshot错误在屏幕截图中这是错误屏幕截图

Try changing final ListView list = (ListView) findViewById(R.id.listview1);尝试更改最终 ListView list = (ListView) findViewById(R.id.listview1);

into final ListView list = findViewById(R.id.listview1);进入最终的 ListView 列表 = findViewById(R.id.listview1);

and after that run the program and check logcat然后运行程序并检查logcat

That is a fragment.那是一个片段。 A fragment is separate from an activity.片段与活动分开。 You have to bind it to an activity.您必须将其绑定到活动。 The findViewById() method needs to be tied to a view of an activity. findViewById()方法需要绑定到活动的视图。 Get the view reference to a view object first.首先获取对视图 object 的视图引用。

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;
}

Take care of how view is used and returned in the end.注意最终如何使用和返回视图。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM