2017-02-12 69 views
0

我創建了Android壁紙的應用程序名稱,但問題是當我點擊左右按鈕時,下一個和前一個壁紙不會出現。我嘗試了很多,但失敗了。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); 
       } 

      } 
     }); 
    } 
} 

這就是代碼。

這是應用程序的圖像:

enter image description here

回答

1

你只爲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++; 
      } 
     } 
    } 
} 
+0

我試過但沒有工作 –

+0

我編輯了我的例子。現在,您只需要一個可繪製的列表,即可設置上一個或下一個可繪製對象 – anatoli

1

首先,如果()有沒有條件,因此它不能作品增添第一if(m.getDrawable()==getResources().getDrawable(R.drawable.m2).getCurrent()) 然後添加所有的其他人,如果你需要,最後是其他人,包括m.setImageResource(R.drawable.w2);

其次你需要的是setOnClickListenerButton對象,因爲你只設置聽者b1而不是b2

什麼是B

爲什麼你有一個名爲a的數組帶有drawables如果你不訪問它的字段?您可以使用a[index]訪問drawables,並在單擊b1b2時將索引號從0增加到3或從3減少到0。這將是更好的...