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

时间:2013-11-15 21:05:19

标签: android

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

公共类MainActivity扩展了Activity {

     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")

}

但我不能像这样访问我应该做什么? 任何人都可以帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

您正在尝试使用参数TestAdapter创建新的this,这是CustomAdapter

您只有一个以Context为参数的构造函数。

public TestAdapter(Context context) 

您必须提供适当的构造函数:

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

public TestAdapter() { }
TestAdapter test = new TestAdapter();

答案 1 :(得分:0)

您需要拥有一个带有Context的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")
}