我可以通过在它们之间切换来使用两个Button的一个定义吗?

时间:2016-07-05 04:38:46

标签: android android-layout

我有两个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。但它没有。

4 个答案:

答案 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;
    }
}
 }