我有两个ImageButton视图redButton和blueButton 但在代码中我只使用了一个定义
clickListener
然后在GButton.setOnClickListener(new ImageButton.OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case (R.id.blueButton):
GButton = (ImageButton) findViewById(R.id.redButton);
break;
case (R.id.redButton):
GButton = (ImageButton) findViewById(R.id.blueButton);
break;
}
}
});
我有这段代码:
clickListener
我希望redButton
切换到TabStop
。但它没有。
答案 0 :(得分:3)
是的,您可以通过setTag()方法使用并通过getTag()方法检查onClick中的新标记。
还有另一个建议ViewFlipper
在一个到另一个之间切换。
以下是它的例子:
<ViewFlipper android:id="@+id/viewFlipper">
<RelativeLayout>
// Red Button
</RelativeLayout>
<RelativeLayout>
// Green Button
</RelativeLayout>
</ViewFlipper>
希望它对你有所帮助。
答案 1 :(得分:2)
答案:
是的,您可以通过在它们之间切换来使用两个Button的一个定义。
问题:
您的代码无效,因为您在切换ClassicSingleton.getInstance().getYourData();
的ID 之后未设置clickListener。
这样做,它将开始工作:
GButton
答案 2 :(得分:0)
在onClick
方法中,您应该重置视图setOnClickListener
方法
答案 3 :(得分:0)
请使用此代码
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageButton;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
ImageButton btnRed, btnBlue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnBlue = (ImageButton) findViewById(R.id.btn_blue);
btnRed = (ImageButton) findViewById(R.id.btn_red);
btnBlue.setOnClickListener(this);
btnRed.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case (R.id.btn_blue):
//TODO handle blue ImageButton click
break;
case (R.id.btn_red):
//TODO handle red ImageButton click
break;
}
}
}