Android 无法从另一个类的内部访问某个类的方法

Android 无法从另一个类的内部访问某个类的方法,android,Android,我有一个MainActivity和另外两个名为“TestAdapter”和“CustomAdapter”的类。 在我的主要活动中,我通常可以从访问数据库的地方调用“TestAdapter”类。 像这样: public TestAdapter createDatabase() { mDbHelper.createDataBase(); } public TestAdapter open() { mDbHelper.openDataBase();} public void add_t

我有一个MainActivity和另外两个名为“TestAdapter”和“CustomAdapter”的类。 在我的主要活动中,我通常可以从访问数据库的地方调用“TestAdapter”类。 像这样:

public TestAdapter createDatabase()  {  mDbHelper.createDataBase();   }

public TestAdapter open() {  mDbHelper.openDataBase();}

 public void add_to_fav(String fav_word){}
公共类MainActivity扩展了活动{

     TestAdapter mDbHelper = new TestAdapter(this);        

            onCreate() {

             mDbHelper.createDatabase(); 
            .....
我的TestAdapter类如下所示。在该类中有不同的方法/函数:

public class TestAdapter 
 {

public  Context mContext;
private SQLiteDatabase mDb;
private DataBaseHelper mDbHelper;

public TestAdapter(Context context) 
{
    this.mContext = context;
    mDbHelper = new DataBaseHelper(mContext);
}
此类中有一个方法如下所示:

public TestAdapter createDatabase()  {  mDbHelper.createDataBase();   }

public TestAdapter open() {  mDbHelper.openDataBase();}

 public void add_to_fav(String fav_word){}
我创建了另一个名为CustomAdapter的类 但无法访问该类中的add_to_fav方法将数据添加到数据库中

我需要调用TestAdapter类的“add_to_fav”方法将一些数据更新到数据库中

public class CustomAdapter extends BaseAdapter
{
   TestAdapter t=new TestAdapter(this);
    t.add_to_fav("data")

}
但是我不能像这样访问我应该怎么做??
有人能帮上忙吗?

您正在尝试创建一个新的
测试适配器
,带有参数
this
,它是一个
自定义适配器

只有一个构造函数将
上下文
作为参数

public TestAdapter(Context context) 
您必须提供适当的构造函数:

public TestAdapter(CustomAdapter adapter) { }
TestAdapter test = new TestAdapter(this);


您需要有一个接受上下文的CustomAdapter构造函数

public class CustomAdapter extends BaseAdapter
{
    public  Context mContext;

    public CustomAdapter(Context context)
    {
        mContext = context;
    }
    TestAdapter t=new TestAdapter(mContext);
    t.add_to_fav("data")
}

您收到的错误是什么?TestAdapter t=new TestAdapter(this);在这一行中说“构造函数TestAdapter(CustomAdapter)未定义”这是您的答案,CustomAdapter不是上下文,因此不能用作TestAdapter构造函数的参数。您已使用类型为
Context
的参数定义了构造函数。在这一行中,
new TestAdapter(此)
引用了
CustomAdapter
的当前实例,他的TestAdapter类需要一个上下文。您建议的两个构造函数将不会帮助OP。您的上下文不可用,因为您所在的类不是从它继承的。我不知道有足够的Android提供解决方案,因此除非您获得
Context
对象在
CustomAdapter
的范围内,您必须修改设计。然后您需要将上下文传递到
CustomAdapter
的构造函数中,并使用该构造函数初始化
TestAdapter
。但是,您应该说明为什么需要上下文。传递上下文通常是错误的des的标志ign。@Simon他需要一个上下文:
mDbHelper=new DataBaseHelper(mContext);
所以使用应用程序上下文而不是传递活动上下文?也许最重要的是,为什么要在适配器中使用DataBaseHelper?