我无法使用更新视图上的bakground图像的方法来绑定layoutswipe侦听器。
两个单独的组件正在孤立地工作 - 即: 1)我在' LayoutSwipeListener"中有一个听众。在布局上拾取手势的类。这个听众工作正常。 2)我在MainActivity中有一个名为' updateWallpaperForward"的方法。它会更新布局视图中的背景图像。
但是,我想要做的是调用" updateWallpaperForward"我的LayoutSwipeListener类中的方法。我不能这样做。它目前正在编译,但是当我滑动时应用程序崩溃。
对此的任何帮助将不胜感激!
相关代码如下:
CLASS:MyActivity.java
//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;
...
CLASS: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
答案 0 :(得分:0)
我明白了......
public LayoutSwipeListener (Activity mainActivity) {
activity = mainActivity;
WallpaperLayout = (LinearLayout) activity.findViewById(R.id.wallpaperLayout); // THIS IS THE LINE I NEEDED
}
谢谢,