【发布时间】:2011-08-04 15:27:34
【问题描述】:
嘿,我想知道你是怎么做到的,这样当一个图像按钮被按下时,它会改变颜色以显示它被按下了。
DragonFruitActivity.java
package com.Dragon_Fruit;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;
public class DragonFruitActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageButton playbutton = (ImageButton) findViewById(R.id.playbutton); playbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
setBackgroundResource(R.drawable.playbuttonselected);
// TODO Auto-generated method stub
startActivity(new Intent(DragonFruitActivity.this, playbutton.class));
}
private void setBackgroundResource(int playbuttonselected) {
// TODO Auto-generated method stub
}
});
ImageButton settingsbutton = (ImageButton) findViewById(R.id.settingsbutton); settingsbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(DragonFruitActivity.this, settingsbutton.class));
}
});
}
}
所以新的Activity应该是:
package com.Dragon_Fruit;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;
public class DragonFruitActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageButton playbutton = (ImageButton) findViewById(R.id.playbutton); playbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
arg0.setBackgroundResource(R.drawable.playbuttonselected);
// TODO Auto-generated method stub
startActivity(new Intent(DragonFruitActivity.this, playbutton.class));
}
});
ImageButton settingsbutton = (ImageButton) findViewById(R.id.settingsbutton); settingsbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(DragonFruitActivity.this, settingsbutton.class));
}
});
}
}
【问题讨论】:
-
您不需要自己的
setBackgroundResource(...)方法,View类内置了一个:developer.android.com/reference/android/view/… -
啊,我知道问题出在哪里了。这是我的错误:删除额外的方法 setBackgroundResource,并在 onClick 方法中调用此方法之前添加
arg0.:arg0.setBackgroundResource(R.drawable.playbuttonselected); -
我添加了新活动应该是什么。它看起来正确吗?