-1

頭のいい人が私のささいな質問を好まないのはわかっていますが、私は学ぼうとしています

私は、これまでアプリで int を使用してきたペア ゲームを作成しようとしていますが、このゲームには別のアプローチが必要です。タグを試してみましたが、コードはすべてき​​れいに見え、エラーはありません

 public class MainActivity extends Activity {
//added Tag here for the if (pic2.getTag()==(beck)); 
 Tag beck;
 @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

final ImageButton pic1 = (ImageButton )     findViewById(R.id.imageButton1);         
final ImageButton pic2 = (ImageButton )     findViewById(R.id.imageButton2); 

     pic1.setOnClickListener(new View.OnClickListener()       { 
 public void onClick(View v) {  
     pic1.setBackgroundResource(R.drawable.becks);
     pic1.setTag(R.drawable.becks);
 if (pic2.getTag() == pic1.getTag()){            
     pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE);}     
    }});    

     pic2.setOnClickListener(new View.OnClickListener() {                            
 public void onClick(View v) {       
     pic2.setBackgroundResource(R.drawable.becks);
     pic2.setTag(R.drawable.becks);

     if (pic1.getTag() == pic2.getTag()){
    pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE); 
    }
    }});    
    }}

私の元の投稿以来、2つのボタンのコードを表示する方法を見つけようとしましたが、2番目のボタンがクリックされた後に比較して非表示にするだけです

if (pic1.getTag().equals(pic2.getTag())){
    pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE); }

.equals はアプリをクラッシュさせます

     pic1.setOnClickListener(new View.OnClickListener()  {  
  public void onClick(View v) {  
     pic1.setBackgroundResource(R.drawable.becks);
     pic1.setTag(beck);
 if (pic2.getTag()==(beck));{            
     pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE);}     
     }});       

これはセミの有無にかかわらず機能しますが、どちらかのボタンをクリックすると両方のボタンが消えます

if (pic1.getTag()==(pic2.getTag())){
    pic1.setVisibility(View.INVISIBLE);
     pic2.setVisibility(View.INVISIBLE); }

これは画像を変更しますが、可能であればintを使用しないようにしようとして2番目の画像をクリックしてもボタンは消えません

この行はカンマで機能します

 if (pic1.getTag()==(pic2.getTag()))
 if (pic1.getTag()==(pic2.getTag()));

両方のボタンの効果で、どちらかのボタンを 1 回クリックすると消えます。笑の場合は、他のボタンに移動する恐れがあります。また、画像のペアが false の場合は、タグを削除できます。たとえば、一致しない場合は、ボタン タグを削除し、残りのすべての画像をデフォルトの画像にリセットします。 24 個のボタンすべてをオンにすると、リセット メソッドが必要です。if ステートメントの最後にあるセミコロンを見つけると、セミコロンを使用しない場合と使用しない場合に正しい方法を示すことができないというさまざまな効果があります。

4

1 に答える 1

1

タグを使用してイメージ ID を保存します。

pic1.setTag(R.drawable.becks);
pic2.setTag(R.drawable.becks);

getTag()次に、クリックされたボタンを呼び出して、それらを確認および比較できます。

public boolean isMatch(View x, View y) {
  return x.getTag() == y.getTag();
}
于 2013-10-08T15:24:27.027 に答える