Methods 从侦听器类调用MyActivity中的方法
我无法将layoutswipe侦听器与更新视图上bakground图像的方法绑定 这两个独立的部件是独立工作的,即: 1) 我在“LayoutSwipeListener”类中有一个监听器,可以在布局上拾取手势。这个监听器工作正常。 2) 我在MainActivity中有一个名为“updateWallpaperForward”的方法,用于更新layoutview上的背景图像 但是,我要做的是从我的LayoutSwipeListener类中调用“updateWallpaperForward”方法。我不能这样做。它目前正在编译,但当我刷卡时应用程序崩溃 在此方面的任何帮助都将不胜感激 相关代码如下: 类:MyActivity.javaMethods 从侦听器类调用MyActivity中的方法,methods,ontouchlistener,Methods,Ontouchlistener,我无法将layoutswipe侦听器与更新视图上bakground图像的方法绑定 这两个独立的部件是独立工作的,即: 1) 我在“LayoutSwipeListener”类中有一个监听器,可以在布局上拾取手势。这个监听器工作正常。 2) 我在MainActivity中有一个名为“updateWallpaperForward”的方法,用于更新layoutview上的背景图像 但是,我要做的是从我的LayoutSwipeListener类中调用“updateWallpaperForward”方法。我
//Layout for wallpaper change
LinearLayout WallpaperLayout;
....
protected void onCreate(Bundle savedInstanceState) {
...
//Wallpaper layout
WallpaperLayout = (LinearLayout) findViewById(R.id.wallpaperLayout);
WallpaperLayout.setOnTouchListener(new LayoutSwipeListener(this));
...
public void updateWallpaperForward(View view) {
switch(wallpaperID) {
case 1:
WallpaperLayout.setBackgroundResource(R.drawable.wallpapertwo);
wallpaperID=2;
break;
...
类:LayoutSwipeListener.java
public class LayoutSwipeListener implements View.OnTouchListener {
private Activity activity;
static final int MIN_DISTANCE = 100;
private float downX, downY, upX, upY;
public int wallpaperID = 1;
//Layout for wallpaper change
LinearLayout WallpaperLayout;
// private MainActivity mMainActivity;
public LayoutSwipeListener (Activity mainActivity) {
activity = mainActivity;
}
......
public void onLeftToRightSwipe() {
activity.updateWallpaperForward();
//// THIS IS WHERE IM STUCK - IT DOESNT PICK Up THIS METHOD IN THE EDITOR OR COMPILE
我想出来了
public LayoutSwipeListener (Activity mainActivity) {
activity = mainActivity;
WallpaperLayout = (LinearLayout) activity.findViewById(R.id.wallpaperLayout); // THIS IS THE LINE I NEEDED
}
谢谢,我只是想补充一下-我已经尝试过将该方法设置为静态,但这不起作用,因为如果它是静态的,那么它的字段将无法被引用。