2012-06-05 43 views
0

我有一個活動 這裏是我正在嘗試做的。當應用程序啓動時顯示圖像。當圖像被點擊時,顯示下一個圖像。 我已經把它設置爲main.xml和imageview。 該應用程序構建並運行並顯示第一個圖像沒有問題。 現在嘗試爲圖像設置onclick,以便顯示下一個圖像。我已將android:onClick =「onClick」添加到main.xml中的圖像vew。 我正在使用(this)爲setOnClickListner和我實現View.onClickListener的類,但交換機的情況下,我安裝我得到重複的方法onClick(視圖v),我不知道爲什麼。不知道爲什麼得到重複的方法onClick(查看)

還試圖找出findViewById我認爲我總是會顯示image1的方式。

在線獲取錯誤public void onClick(View v)它是一個重複的方法。

這是我的代碼。感謝您的幫助。

main.xml是一個不確定的線性佈局。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<ImageView 
    android:id="@+id/imageView1" 
    android:src="@drawable/bear"   
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:onClick="onClick" 
    android:contentDescription="@string/desc"/> 

<ImageView 
    android:id="@+id/imageView2" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/bear_n" 
    android:onClick="onClick" 
    android:contentDescription="@string/desc" /> 

這是java文件。

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ImageView; 


public class VTFCActivity extends Activity implements View.OnClickListener{ 

ImageView image; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    image = (ImageView) findViewById(R.id.imageView1); 
    ImageView image1 = (ImageView) findViewById(R.id.imageView1); 
    ImageView image2 = (ImageView) findViewById(R.id.imageView2); 

    image1.setOnClickListener(this); 
    image2.setOnClickListener(this); 

} 
public void onClick(View v) { 
    switch (v.getId()){ 

    case R.id.imageView1: 
     image.setImageResource(R.drawable.bear); 
     break; 
    case R.id.imageView2: 
     image.setImageResource(R.drawable.bear_n); 
     break;   
    } 
} 
+0

請張貼您的錯誤logcat。 –

+0

你必須接受幾個答案之一,如果有任何解決您的問題有很多關注解決方案 – 2013-09-03 08:28:58

+0

@DipakKeshariya將不會有任何log cat錯誤每一件事情都清楚這兩個代碼從xml和java一個足以澄清解決方案 – 2013-09-03 08:30:09

回答

0

現在想安裝的onclick爲圖像,從而使下一個圖像將顯示 。我已將android:onClick =「onClick」添加到 main.xml中的圖像vew中。

如果已經添加了安卓的onClick =「點擊」到main.xml中 兩個圖像視圖您應該,因爲你已經在主XML指定,從代碼中刪除image1.setOnClickListener(this);image2.setOnClickListener(this);

+0

是。無論是'android:onClick =「onClick」'或'image1.setOnClickListener(this);',都不是兩個... – GAMA

0

當您使用

image1.setOnClickListener(this); 
image2.setOnClickListener(this); 

你必須覆蓋默認的onClick()方法中個Android API:

@Override 
public void onClick(View v) 

也設置在XML android:onClick="onClick"

會讓你處理CLIK來自您的自定義onClick方法的事件

和th在你的方式中,有一個例外被拋給你:告訴你有一個重複的方法!

,所以你有兩個選擇:

  1. 刪除android:onClick="onClick":這就是我會做

  2. 刪除image1.setOnClickListener(this);image2.setOnClickListener(this);和處理點擊您的自定義方式的onClick()方法

-1

這是代碼...

public class MainActivity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    Button b = (Button) findViewById(R.id.button1); 
    b.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      final Dialog dl = new Dialog(MainActivity.this); 

      dl.setContentView(R.layout.cdialog); 

      dl.setTitle("Title"); 


      TextView txt = (TextView) dl.findViewById(R.id.textView1); 

      txt.setText("Hi \n How are you \n" + 
        "Where were you \n Good to see you"); 

      Button btn = (Button) dl.findViewById(R.id.button1); 
      btn.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 

        dl.dismiss(); 

       } 
      }); 
      dl.show(); 
     } 
    }); 
} 
} 
相關問題