无法解析构造函数 Intent 和 ArrayAdapter

Cannot resolve constructor Intent and ArrayAdapter

这是我的代码:

线条

ArrayAdapter<Diseases>(this , android.R.layout.simple_list_item_1, data);

Intent intent = new Intent(this, DetailActivity.class); 

显示错误

Cannot resolve constructor 'ArrayAdapter(com.android.mahanr.healthapp.Tab1, int, java.util.List)'

Cannot resolve constructor 'Intent(com.android.mahanr.healthapp.Tab1, java.lang.Class)'

如何使用 getActivity() 而不是 data = DataProviderDiseases.getData();

来保存它

是片段,应该用getActivity()代替this.

步骤 1

 ArrayAdapter<Diseases> diseasesArrayAdapter
        = new ArrayAdapter<Diseases>(getActivity(), android.R.layout.simple_list_item_1, data);
ListView listView = (ListView) listView.findViewById(android.R.id.list);

步骤 2

 private void displayDetail(Diseases diseases) {

    Intent intent = new Intent(getActivity(), DetailActivity.class);
    intent.putExtra(DISEASES_TITLE, diseases.getTitle());
    intent.putExtra(DISEASES_DESC, diseases.getDescription());
    startActivityForResult(intent, DETAIL_REQUEST_CODE);
}

步骤 3

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_diseases_main, container, false);

    data = DataProviderDiseases.getData();

    ArrayAdapter<Diseases> diseasesArrayAdapter= new ArrayAdapter<Diseases>(getActivity(), android.R.layout.simple_list_item_1, data);
    ListView listView = (ListView) rootView.findViewById(android.R.id.list);
    listView.setAdapter(diseasesArrayAdapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Diseases diseases = data.get(position);
            displayDetail(diseases);
        }
    });

     return rootView; // It must be here
}

ArrayAdapter 构造函数的任何变体都需要 Context 作为第一个参数。请在初始化 ArrayAdapter 实例期间使用 getContext() 而不是 this