2017-04-25 2 views
0

私はFEN記法チェス - GridView、どのようにチェスのピースを2回のクリックで移動するのですか?

私が何をしたかについての基本的な情報からチェスの位置をロードチェスのアプリ..

で働いている私は64 ImageviewsのGridViewのを使用してGridview.Iの背景画像としてチェス盤の画像を設定しますGridview.Butでチェスの位置を読み込むことができる私は現在の場所(最初のクリック)から新しい場所(2番目のクリック)にチェスの部分を移動する方法を知りません。私はCustomAdapterのonclickから2つのポジションを持っています。

私はアンドロイドとGridViewの

答えて

0

に新しいです私はMyApplicationを
で2回のクリック私はonclickのからもらったものの中から2 imageviewsの位置を保存しています。 CustomAdapterクラスでも

public class MyApplication extends Application { 

    private int ClickedImageView1=-1; 
    private int ClickedImageView2=-1; 

private static MyApplication instance = new MyApplication(); 

// Getter-Setters 
public static MyApplication getInstance() { 
    return instance; 
} 
public static void setInstance(MyApplication instance) { 
    MyApplication.instance = instance; 
} 


public void setClickedImageView1(int ClickedImageView1) { 
    this.ClickedImageView1 = ClickedImageView1; 
} 

public int getClickedImageView1() { 
    return ClickedImageView1; 
} 

public void setClickedImageView2(int ClickedImageView2) { 
    this.ClickedImageView2 = ClickedImageView2; 
} 

public int getClickedImageView2() { 
    return ClickedImageView2; 
} 
} 

、OnClickListenerにそれが働いているいくつかのコードに

public void onClick(View v) { 


       if (MyApplication.getInstance().getClickedImageView1()== -1) { 
        MyApplication.getInstance().setClickedImageView1(position); 
      //saving the first click position if it is first click  
       } 
       else { 
        MyApplication.getInstance().setClickedImageView2(position); 
     //saving the second click position            
        ImagesId[MyApplication.getInstance().getClickedImageView2()]=ImagesId[MyApplication.getInstance().getClickedImageView1()]; 
       //moving image to secondclick position 
        ImagesId[MyApplication.getInstance().getClickedImageView1()]=0; //clear the imageview1 
        gridView.setAdapter(new CustomAdapter(MainActivity.this,ImagesId));  //reloads the adapter 
      // gridView.setBackgroundResource(R.drawable.chessboard); 
        MyApplication.getInstance().setClickedImageView1(-1); 
        MyApplication.getInstance().setClickedImageView2(-1); 
        //resetting the varibles in MyApplication object 
       } 

を追加しました!

関連する問題