Can';找不到在其他java文件中声明的方法
我正在构建一个todo应用程序,我在单独的java文件中声明了方法,当我想在另一个java文件中访问它们时,它们会说“无法解析该方法” 你可以在网站上看到整个项目 请帮助我,如果可能的话,请检查并对我的代码做一个小的回顾 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
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);