2017-11-18 5 views
0

は、コードは次のとおりです。私はのonCreateでbutton.setImageResource(R.drawable.pause);を置けばImageViewはsetImageResource()で変更されませんか?ここ

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 

    ImageView button; 



@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    button = (ImageView)findViewById(R.id.startButton); 
    button.setOnClickListener(this); 
    button.setImageResource(R.drawable.play); 
} 
    public void onClick(View v) { 
     button.setImageResource(R.drawable.pause); 
    } 
} 

は、どうやらそれはonClickの中で動作し、画像を変更しますが、ありませんか?私はそれをデバッグしようとし、それはonClickコードを実行したが、ボタン画像を変更しなかった。私はおそらく非常にばかな間違いをしているだろうが、私はそれを理解することはできない。

のxml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.example.larry.app.MainActivity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
    <ImageView 
     android:id="@+id/startButton" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true" /> 
</LinearLayout> 
+0

あなたのXMLを私に教えてください –

+0

私はそのXMLを考えません –

+0

例でコードをやり直して、うまくいきます(setImageResourceが動作します)。あなたが追加したことはほかにありませんか? –

答えて

0

OnClickListenerより良いセットImageViewの自己を持っていたあなたがXMLで最初の画像を設定する

android:src 

を使用していることを確認してください。

0

あなたは、このコードを試してみて、私に結果を言うことができる:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 

     ImageView button; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      button = (ImageView)findViewById(R.id.startButton); 
      button.setOnClickListener(this); 
      button.setImageResource(R.drawable.play); 

     } 
     public void onClick(View v) { 
      button.setImageResource(R.drawable.pause); 
     } 
    } 

とxmlでの:クリック時に

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.example.larry.app.MainActivity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
    <ImageView 
     android:id="@+id/startButton" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true" /> 
</LinearLayout> 
+0

このコードは動作しますが、私のプロジェクトではdoes not –

+0

。あなたの問題を解決しますか? –

+0

私はプロジェクトコードをこれに合わせて変更しました。私は問題が起きたと思っていました。アンドロイド:xmlのsrcは永久ですが、それは修正しませんでした。 –

0

がswitch文であり、私はbutton.setImageResource(R.drawable.pause);を置きますスイッチの前にOnClickがアクティブになっても必ずアクティブになるわけではありません。 1つのボタンをクリックすると、画像がスワップしないようにするandroid.os.SystemClock.sleepが実行されます。もう一方のボタンを押すと時計がスリープしないので、画像が正常に切り替わることができます。

関連する問題