2012-06-05 47 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(); 
     } 
    }); 
} 
} 
相关问题