Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';找不到在其他java文件中声明的方法_Java - Fatal编程技术网

Can';找不到在其他java文件中声明的方法

Can';找不到在其他java文件中声明的方法,java,Java,我正在构建一个todo应用程序,我在单独的java文件中声明了方法,当我想在另一个java文件中访问它们时,它们会说“无法解析该方法” 你可以在网站上看到整个项目 请帮助我,如果可能的话,请检查并对我的代码做一个小的回顾 Java方法文件 package com.example.mytodo; public class my_todo { String titledoes; String datedoes; String descdoes; String key

我正在构建一个todo应用程序,我在单独的java文件中声明了方法,当我想在另一个java文件中访问它们时,它们会说“无法解析该方法”

你可以在网站上看到整个项目

请帮助我,如果可能的话,请检查并对我的代码做一个小的回顾

Java方法文件

package com.example.mytodo;

public class my_todo {
    String titledoes;
    String datedoes;
    String descdoes;
    String keydoes;

    public my_todo() {
    }

    public my_todo(String titledoes, String datedoes, String descdoes, String keydoes) {
        this.titledoes = titledoes;
        this.datedoes = datedoes;
        this.descdoes = descdoes;
        this.keydoes = keydoes;
    }



    public String getKeydoes() {
        return keydoes;
    }

    public void setKeydoes(String keydoes) {
        this.keydoes = keydoes;
    }

    public String getTitledoes() {
        return titledoes;
    }

    public void setTitledoes(String titledoes) {
        this.titledoes = titledoes;
    }

    public String getDatedoes() {
        return datedoes;
    }

    public void setDatedoes(String datedoes) {
        this.datedoes = datedoes;
    }

    public String getDescdoes() {
        return descdoes;
    }

    public void setDescdoes(String descdoes) {
        this.descdoes = descdoes;
    }
}

这是Java文件给我的错误 方法:getTitledoes()GetDescrDoes()getDatedoes()

package com.example.mytodo;
导入android.content.Context;
导入android.content.Intent;
导入android.support.annotation.NonNull;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.TextView;
导入com.example.mytodo.R;
导入org.w3c.dom.Text;
导入java.util.ArrayList;
公共类DoesAdapter扩展了RecyclerView.Adapter{
语境;
ArrayList MyDos;
公共DoesAdapter(上下文c,数组列表p){
上下文=c;
mydos=p;
}
@非空
@凌驾
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
返回新的MyViewHolder(LayoutInflater.from(context).充气(R.layout.new_todo,viewGroup,false));
}
@凌驾
public void onBindViewHolder(@NonNull MyViewHolder MyViewHolder,int i){
MyViewHolder.titledoes.setText(mydos.get(i.getTitledoes());
MyViewHolder.descdos.setText(mydos.get(i.getDescdoes());
MyViewHolder.datedos.setText(mydos.get(i.getDatedoes());
}
@凌驾
public int getItemCount(){
返回myDoes.size();
}
类MyViewHolder扩展了RecyclerView.ViewHolder{
TextView标题栏、描述栏、日期栏;
公共MyViewHolder(@NonNull View itemView){
超级(项目视图);
titledoes=(TextView)itemView.findViewById(R.id.titledoes);
descdoes=(TextView)itemView.findViewById(R.id.descdoes);
datedoes=(TextView)itemView.findViewById(R.id.datedoes);
}
}
}

像这样创建您的列表

// modify your adapter class like this
  Context context;
 ArrayList<my_todo> myDoes;

public DoesAdapter(Context c, ArrayList<my_todo> p) {
    context = c;
    myDoes = p;
}


// create list in your activity
 ArrayList<my_todo> list=new ArrayList<>();
 list.add(new my_todo("title","date","desc","key"));

 // pass list  to adapter class
 new DoesAdapter(this,list);
//像这样修改适配器类
语境;
ArrayList MyDos;
公共DoesAdapter(上下文c,数组列表p){
上下文=c;
mydos=p;
}
//在活动中创建列表
ArrayList=新建ArrayList();
添加(新的待办事项(“标题”、“日期”、“说明”、“关键字”);
//将列表传递给适配器类
新DoesAdapter(此,列表);

尝试将
ArrayList myDoes
声明为
ArrayList
myDoes,并在适配器构造函数参数中声明。只有
ArrayList
您有一个
ArrayList
对象类型的
,您只需添加您希望列表为的泛型类型即可解决此问题:

更改
ArrayList myDoes
列出myDoes

并将构造函数参数设置为
列表p

请注意,我使用了
List
而不是
ArrayList
,因为它是更抽象的类型,它的最佳实践是始终使用在给定情况下可能使用的最抽象的类型

更新:


我很乐意向您解释泛型是如何工作的,但这将导致一个很长的答案,鉴于您是初学者,我建议您查找一些Java书籍或在线课程,其中大部分都涉及泛型、它们如何工作以及如何使用它们,您也可以从Oracle本身阅读

非常感谢,它工作,但我没有理解我的错误,请帮助我理解它
// modify your adapter class like this
  Context context;
 ArrayList<my_todo> myDoes;

public DoesAdapter(Context c, ArrayList<my_todo> p) {
    context = c;
    myDoes = p;
}


// create list in your activity
 ArrayList<my_todo> list=new ArrayList<>();
 list.add(new my_todo("title","date","desc","key"));

 // pass list  to adapter class
 new DoesAdapter(this,list);