Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android编程错误_Java_Android - Fatal编程技术网

Java Android编程错误

Java Android编程错误,java,android,Java,Android,我创建了一个android墙纸的应用程序名,但问题是,当我点击左键和右键时,下一个和上一个墙纸都没有出现。我试了很多次,但都失败了 public class Wallpapers extends AppCompatActivity { WallpaperManager managerr; Button B; Button b1; Button b2; ImageView m; int a[]={R.drawable.w1,R.drawable.w

我创建了一个android墙纸的应用程序名,但问题是,当我点击左键和右键时,下一个和上一个墙纸都没有出现。我试了很多次,但都失败了

public class Wallpapers extends AppCompatActivity {
    WallpaperManager managerr;
    Button B;
    Button b1;
    Button b2;
    ImageView m;

    int a[]={R.drawable.w1,R.drawable.w2,R.drawable.w3};
    int aa;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wallpapers);
        click();
    }
    public void click()
    {
        m = (ImageView) findViewById(R.id.imageView);
        B=(Button)findViewById(R.id.button3);
        b1=(Button)findViewById(R.id.button);
        b2=(Button)findViewById(R.id.button2);

        managerr = WallpaperManager.getInstance(getApplicationContext());

        m.setImageResource(R.drawable.w1);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if()
                {
                    m.setImageResource(R.drawable.w2);

                }
                else if(m.getDrawable()==getResources().getDrawable(R.drawable.m2).getCurrent())
                {
                    m.setImageResource(R.drawable.w3);
                }

            }
        });
    }
}
这就是密码

这是应用程序的图像:


您仅为b1设置了
onClickListener

更改您的代码如下

int currentPosition = 0;

public void click(){
    m = (ImageView) findViewById(R.id.imageView);
    B= (Button) findViewById(R.id.button3);
    left = (Button) findViewById(R.id.button);
    right = (Button) findViewById(R.id.button2);

    managerr = WallpaperManager.getInstance(getApplicationContext());

    m.setImageResource(R.drawable.m1);

    left.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View view) {
            if(currentPosition > 0){
                m.setImageResource(previuosDrawable);
                currentPosition--;
            }
        }
    }

    right.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View view) {
            if(currentPosition < pictures.length){
                m.setImageResource(nextDrawable);
                currentPosition++;
            }
        }
    }
}
int currentPosition=0;
公共作废点击(){
m=(ImageView)findViewById(R.id.ImageView);
B=(按钮)findViewById(R.id.button3);
左=(按钮)findViewById(R.id.Button);
右=(按钮)findViewById(R.id.button2);
managerr=wallperManager.getInstance(getApplicationContext());
m、 setImageResource(R.drawable.m1);
left.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图){
如果(当前位置>0){
m、 setImageResource(可预先绘制);
当前位置--;
}
}
}
right.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图){
if(当前位置<图片长度){
m、 setImageResource(nextDrawable);
currentPosition++;
}
}
}
}

您仅为b1设置了
onClickListener

更改您的代码如下

int currentPosition = 0;

public void click(){
    m = (ImageView) findViewById(R.id.imageView);
    B= (Button) findViewById(R.id.button3);
    left = (Button) findViewById(R.id.button);
    right = (Button) findViewById(R.id.button2);

    managerr = WallpaperManager.getInstance(getApplicationContext());

    m.setImageResource(R.drawable.m1);

    left.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View view) {
            if(currentPosition > 0){
                m.setImageResource(previuosDrawable);
                currentPosition--;
            }
        }
    }

    right.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View view) {
            if(currentPosition < pictures.length){
                m.setImageResource(nextDrawable);
                currentPosition++;
            }
        }
    }
}
int currentPosition=0;
公共作废点击(){
m=(ImageView)findViewById(R.id.ImageView);
B=(按钮)findViewById(R.id.button3);
左=(按钮)findViewById(R.id.Button);
右=(按钮)findViewById(R.id.button2);
managerr=wallperManager.getInstance(getApplicationContext());
m、 setImageResource(R.drawable.m1);
left.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图){
如果(当前位置>0){
m、 setImageResource(可预先绘制);
当前位置--;
}
}
}
right.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图){
if(当前位置<图片长度){
m、 setImageResource(nextDrawable);
currentPosition++;
}
}
}
}
首先,if()没有任何条件,因此无法工作。首先添加
if(m.getDrawable()==getResources().getDrawable(R.drawable.m2).getCurrent())
然后根据需要添加所有else,最后添加else,包括
m.setImageResource(R.drawable.w2);

第二,您需要对两个
按钮
对象设置
setOnClickListener
,因为您只将侦听器设置为
b1
,而不是
b2

什么是
B

如果您不访问drawables字段,为什么会有一个名为
a
的数组,其中包含drawables?您可以使用
a[index]
访问drawables,并在单击
b1
b2
时将索引编号从0增加或减少到3或从3减少到0。首先,如果()如果(m.getDrawable()==getResources().getDrawable(R.drawable.m2.getCurrent())
然后根据需要添加所有else,最后添加else,包括
m.setImageResource(R.drawable.w2);

第二,您需要对两个
按钮
对象设置
setOnClickListener
,因为您只将侦听器设置为
b1
,而不是
b2

什么是
B


如果您不访问drawables字段,为什么会有一个名为
a
的数组,其中包含drawables?您可以使用
a[index]访问drawables
并在单击
b1
b2
时将索引编号从0增加或减少到3或从3减少到0。这样会更好…

我已经编辑了我的示例。现在,您只需要一个可绘制列表,即可设置上一个或下一个可绘制。我已经编辑了我的示例。现在,您只需要一个可绘制列表,即可设置上一个或下一个绘制能够的