如何从Android中的另一个活动的java类调用非静态方法?

时间:2017-12-20 01:21:44

标签: java android android-activity methods non-static

所以我有一个java class名为Details,其中包含一个名为loadFavourites()的非静态方法和另一个名为Favorites的java class,这是在我的应用中启动收藏夹活动时实现的。

我希望能够在收藏夹loadFavourites()方法中的详细信息类中调用方法onCreate(),但我不知道该怎么做...

据我所知,我不能创建Details类的实例来访问该方法,例如

Details details = new Details();
details.loadFavourites();

......因为这不起作用。 此外,我不希望我的类或我的方法是静态的,因为我涉及动态数据。

因此,有没有人知道我可以从另一个类调用这个非静态方法的方法?

以下是我的代码的简化版本......

详情活动:

FloatingActionButton addFav = (FloatingActionButton) findViewById(R.id.addFavBtn); 
addFav.setOnClickListener(new View.OnClickListener() { 
public void onClick(View v) { 
    loadFavourites(); 
}});

public void loadFavourites() {
SQLiteDatabase db = dbHelper.getReadableDatabase();

    String[] columns = {"favouriteId", "title", "owner", "url_m", "ownerPic", "description", "dateTaken"};
    Cursor cursor = db.query("favourites", columns, null, null, null, null, "favouriteId");

    Log.d("FavouritesDB", "" + cursor.getCount());

    cursor.moveToFirst();

    while (!cursor.isAfterLast()) {

        favID = cursor.getInt(0);
        title = cursor.getString(1);
        owner = cursor.getString(2);
        url_m = cursor.getString(3);
        ownerPic = cursor.getString(4);
        description = cursor.getString(5);
        date = cursor.getString(6);

        // Add data to the array list for the recyclerview
        ImageInfo favourite = new ImageInfo();

        favourite.dateTaken = date;
        favourite.description = description;
        favourite.ownerPic = ownerPic;
        favourite.url_m = url_m;
        favourite.owner = owner;
        favourite.title = title;
        NetworkMgr.getInstance(this).favouritesImageList.add(favourite);

        // Move to next entry
        cursor.moveToNext();
    }

    cursor.close();
    db.close();
}

在收藏夹活动中:

public class Favourites extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.favourites_layout);

    *this is where I want loadFavourites()*
    }
}

0 个答案:

没有答案