以下是我的代码的一部分:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//......
discover = (ImageView) findViewById(R.id.discover);
to_new = (ImageView) findViewById(R.id.to_new);
me = (ImageView) findViewById(R.id.me);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.discover:
discover.setImageResource(R.drawable.discover_2);
to_new.setImageResource(R.drawable.to_new);
me.setImageResource(R.drawable.me);
break;
case R.id.to_new:
discover.setImageResource(R.drawable.discover);
to_new.setImageResource(R.drawable.to_new_2);
me.setImageResource(R.drawable.me);
break;
case R.id.me:
discover.setImageResource(R.drawable.discover);
to_new.setImageResource(R.drawable.to_new);
me.setImageResource(R.drawable.me_2);
break;
}
}
XML:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="60dp"
android:src="@drawable/blank"/>
<ImageView
android:id="@+id/discover"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/discover"
android:clickable="true"/>
<ImageView
android:id="@+id/to_new"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:src="@drawable/to_new"
android:clickable="true"/>
<ImageView
android:id="@+id/me"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/me"
android:clickable="true"/>
</LinearLayout>
答案 0 :(得分:5)
您没有就自己的观点致电setOnClickLister
。 E.g。
me.setOnClickListener(this);
this
,在这种情况下是您的Activity,它正在实现View.OnClickListener
接口。通过这种方式,您可以告诉视图,当发生click事件时,必须调用onClick
对象中实现的this
方法
答案 1 :(得分:0)
您忘记在onCreate()中设置OnClickListener。
有关详细信息,请参阅下面的参考链接。
http://examples.javacodegeeks.com/android/core/view/onclicklistener/android-onclicklistener-example/
答案 2 :(得分:0)
尝试这种方式 -
discover.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
to_new.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
me.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
答案 3 :(得分:0)
在create method
中调用onclick方法discover.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
to_new.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
me.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});